0
如果我在PreferenceActivity中有一個onSharedPreferenceChanged事件,那就是檢查CheckBoxPreference是否被選中,並在其他Preference上設置了setEnabled,另一個Preference的實際值是否在SharedPreferences中被更改,或者是否必須手動設置他們?onSharedPreferenceChanged編輯存儲值?
我所擁有的是:
public void onSharedPreferenceChanged(Settings sharedPreferences, String key)
{
CheckBoxPreference cbUpdatesEnabled = (CheckBoxPreference)getPreferenceScreen().findPreference("updatesenabled");
CheckBoxPreference cbVibrate = (CheckBoxPreference)getPreferenceScreen().findPreference("vibrate");
cbVibrate.setEnabled(cbUpdatesEnabled.isChecked());
}
來回切換是否「振動」複選框被啓用或在用戶界面中禁用,但那麼做的我也有使用:
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("vibrate", cbUpdatesEnabled.isChecked());
editor.commit();
或者是還有其他一些更新SharedPreferences的方法嗎?它看起來不像是根據是否啓用該值自動保存。
是的,你必須手動設置共享優先值 –