触发onPreferenceClick时如何动态填充ListPreference?
|
我有一个偏好活动,它的显示范围为ѭ1a0。可以在调用onCreate时填充列表,但是我想在用户单击列表时填充列表。
this is the java code
:
public class SettingsActivity extends PreferenceActivity implements OnPreferenceClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
addPreferencesFromResource(R.xml.settings);
} catch (Exception e) {
}
}
@Override
public boolean onPreferenceClick(Preference preference) {
if((preference instanceof ListPreference) && (preference.getKey().equals(\"language\"))){
ListPreference lp = (ListPreference)preference;
CharSequence[] entries = { \"English\", \"French\" };
CharSequence[] entryValues = {\"1\" , \"2\"};
lp.setEntries(entries);
lp.setDefaultValue(\"1\");
lp.setEntryValues(entryValues);
return true;
}
return false;
}
}
这是settings.xml
(首选项):
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<PreferenceScreen
xmlns:android=\"http://schemas.android.com/apk/res/android\">
<PreferenceCategory android:title=\"General Settings\">
<CheckBoxPreference android:key=\"enabled\" android:title=\"Application Status\" android:summary=\"Enable or disable the application\" />
<ListPreference
android:key=\"language\"
android:title=\"Language\"
android:dialogTitle=\"Application language\"
android:summary=\"Select the Application language\"
/>
</PreferenceCategory>
</PreferenceScreen>
我搜索了但没有结果!每当我单击该列表时,都会发生异常。
没有找到相关结果
已邀请:
3 个回复
疮痪徘弦漏
和
属性,或者以编程方式在
中进行设置。 如果在初始化初始ListPreference对象之后需要动态更改列表中的项目,则需要将ѭ9直接附加到ListPreference对象。使用您在XML中指定的键来获取首选项的句柄。 由于填充
和
数组的代码必须同时在
和
中运行,因此有必要将其提取到单独的方法
中,以避免重复。
这是谷歌的DeskClock应用程序的另一个示例:
茬贺努充尽
)来获取首选项的句柄。 由于填充
和
数组的代码必须同时在
和
中运行,因此有必要将其提取到单独的方法
中,以避免重复。
XML布局:
稀瓣囊
然后,我只是将名称更改为XML中的类。
然后我只是在onCreate上进行了此操作。
立即工作。实际上,我从未想到过会如此轻松。