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