【发布时间】:2013-12-01 21:47:10
【问题描述】:
我在我的应用中使用了 PreferenceActivity。定义 settings.xml 如下 -
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="Preferences" >
<PreferenceCategory android:title="Email Options" >
<EditTextPreference
android:dialogTitle="@string/pref_email_user_title"
android:key="pref_email_user"
android:summary="@string/pref_email_user_summary"
android:persistent="true"
android:title="@string/pref_email_user_title" />
<EditTextPreference
android:dialogTitle="@string/pref_email_password_title"
android:key="pref_email_password"
android:summary="@string/pref_email_password_summary"
android:persistent="true"
android:title="@string/pref_email_password_title" />
</PreferenceCategory>
活动如下-
public class Prefs extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
你只需要什么,对吧?显然不是,因为我点击了“电子邮件用户”设置,它会弹出一个对话框,我用它来输入字符串值。但是我输入的内容并没有出现在设置屏幕上,我仍然看到默认值。
我注意到这些值被保存在/data/data/<package>/shared_prefs 下的首选项文件中
当我重新启动应用程序时,我也看不到这些持久值 - 它显示默认值。我缺少什么魔法?
【问题讨论】:
标签: android sharedpreferences preferenceactivity