onSharedPreferenceChanged编辑存储值?

时间:2011-08-23 02:59:50

标签: android preferences sharedpreferences

如果我在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的方法?它看起来不像是根据它是否启用而自动保存。

1 个答案:

答案 0 :(得分:0)

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

Click here

Click here