0
我正在尝试为我的应用程序创建一个设置部分。我有一个RES/XML/settings.xml中:我的偏好不“粘”
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<ListPreference
android:key="numberOfYears"
android:title="Number of Years to Read the Bible"
android:summary="How many years would you like to take to read through the reading plan?"
android:entries="@array/numberOfYears"
android:entryValues="@array/numberOfYears"
android:dialogTitle="How Many Years?"
/>
<CheckBoxPreference android:key="ignoreDates"
android:title="Ignore Dates"
android:summary="Would you like to use the dates in the plan?"
/>
</PreferenceScreen>
我有一类称为首延伸PreferenceActivity并包含以下内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
我不知道,如果这是必需的,但我还增加了以下我的主要活动:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, PREFS_MENU, Menu.NONE, "Preferences");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Log.d(TAG, "Menu Item: " + item.getItemId());
switch (item.getItemId()) {
case PREFS_MENU :
startActivity(new Intent(this, Preferences.class));
return true;
}
return false;
}
这似乎是工作中,我得到一个“首选项”菜单,选中它时,启动我的喜好。但是,当我选择任何值似乎不坚持。我的理解是,android:key足以让系统在默认的共享首选项中设置所选的值 - 是不是这种情况?
我错过了什么?
“当我选择什么价值观似乎并没有坚持” - 什么是你的这个定义?这是一个可用的示例项目:http://github.com/commonsguy/cw-android/tree/master/Prefs/Dialogs/ – CommonsWare 2010-09-16 10:35:22
如果我进入并设置首选项,请按回,然后再次进入,然后偏好未设置。这就是我不坚持的意思。不过我会看看你的项目。谢谢。 – 2010-09-16 11:02:55
有趣的是,如果我使用adb去查看共享首选项 - 值被设置。那么为什么在设置偏好时不显示呢? – 2010-09-16 11:09:38