我想使用活动中的按钮保存首选项。
我在按钮侦听器中的代码是:
SharedPreferences.Editor editor = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE).edit();
editor.putString("key_points", "5"); // value to store
editor.apply();
正如我在其他一些相关问题中所做的那样,这应该有效并修改我称之为"key_points"的偏好。
然后,我单击菜单按钮并选择"设置"。
"settings"启动了我的SettingActivity,其中调用了PreferenceFragment类:
getFragmentManager().beginTransaction().replace(android.R.id.content, new MainPreferenceFragment()).commit();
然后,PreferenceFragment 类调用:
addPreferencesFromResource(R.xml.preferences);
问题是,我通过按钮对首选项所做的更改并未反映在首选项片段中。
设置活动显示的是旧的首选项值,而不是我提交的首选项值。
出了什么问题,我是否使我的"设置活动"显示由按钮设置的首选项的新值?
谢谢 AJ
SharedPreferences.Editor editor = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE).edit();
这可能是因为您没有使用默认的共享首选项。首选项值存储在默认值中(默认情况下(。
尝试使用SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
而不是自定义的共享首选项文件。