【问题标题】:onSharedPreferenceChanged edit stored value?onSharedPreferenceChanged 编辑存储值?
【发布时间】:2011-08-23 02:59:50
【问题描述】:

如果我的 PreferenceActivity 中有一个 onSharedPreferenceChanged 事件,即检查是否检查了 CheckBoxPreference 并在其他 Preference 上设置 setEnabled,其他 Preference 的实际值是否在 SharedPreferences 中发生更改,或者我必须手动设置?

我拥有的是:

 public void onSharedPreferenceChanged(Settings sharedPreferences, String key) 
 {
      CheckBoxPreference cbUpdatesEnabled = (CheckBoxPreference)getPreferenceScreen().findPreference("updatesenabled");

      CheckBoxPreference cbVibrate = (CheckBoxPreference)getPreferenceScreen().findPreference("vibrate");

      cbVibrate.setEnabled(cbUpdatesEnabled.isChecked());
 }

在 UI 中切换“振动”复选框是启用还是禁用,但我还必须使用:

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("vibrate", cbUpdatesEnabled.isChecked());
editor.commit();

或者还有其他更新 SharedPreferences 的方法吗?该值似乎不会仅根据是否启用而自动保存。

【问题讨论】:

  • 是的,您必须手动设置共享偏好值

标签: android preferences sharedpreferences


【解决方案1】:

如果您使用的是 PreferenceActivity,则不必手动更新首选项值。 有关更多信息,请查看以下教程。

Click here

Click here

【讨论】:

    猜你喜欢
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    相关资源
    最近更新 更多