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 文件。
我想使用 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 文件。