Android - 修改后的首选项未在设置菜单上正确显示

Android - Modified preference is not shown correctly on settings menu

我想使用 Activity 中的按钮保存首选项。

我在按钮侦听器中的代码是:

SharedPreferences.Editor editor = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE).edit();
editor.putString("key_points", "5"); // value to store
editor.apply();

正如我在其他一些 SO 相关问题中所做的那样,这应该起作用并修改我称为 "key_points" 的偏好。

然后,我单击我的菜单按钮 select "settings"。

"settings" 启动我的设置Activity,其中调用了 PreferenceFragment class:

getFragmentManager().beginTransaction().replace(android.R.id.content, new MainPreferenceFragment()).commit();

PreferenceFragment class 正在调用:

addPreferencesFromResource(R.xml.preferences);

问题是,我通过按钮对首选项所做的更改没有反映在 PreferenceFragment 中。

设置Activity显示的是旧的偏好值,而不是我提交的值。

有什么问题吗?我是否可以进行设置Activity以显示由按钮设置的首选项的新值?

谢谢, 阿杰

SharedPreferences.Editor editor = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE).edit();

这可能是因为您没有使用默认的 SharedPreferences。偏好值存储在默认值中(默认情况下)。

尝试使用 SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); 而不是自定义的 SharedPreferences 文件。