【发布时间】: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