【问题标题】:Android - Modified preference is not shown correctly on settings menuAndroid - 设置菜单上未正确显示修改后的首选项
【发布时间】:2019-03-24 21:27:28
【问题描述】:

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

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

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

正如我在其他一些与 SO 相关的问题中所做的那样,这应该可以工作并修改我称之为“key_points”的首选项。

然后,我点击菜单按钮并选择“设置”。

"settings" 启动我的 SettingActivity,其中调用了 PreferenceFragment 类:

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

PreferenceFragment 类随后调用:

addPreferencesFromResource(R.xml.preferences);

问题是,我对 Button 的偏好所做的更改并未反映在 PreferenceFragment 中。

SettingsActivity 显示的是旧的偏好值,而不是我提交的那个。

出了什么问题,我是否让我的 SettingsActivity 显示由 Button 设置的首选项的新值?

谢谢, 阿杰

【问题讨论】:

    标签: android sharedpreferences settings preferenceactivity


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-15
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      相关资源
      最近更新 更多