2011-08-23 94 views
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的方法嗎?它看起來不像是根據是否啓用該值自動保存。

+0

是的,你必須手動設置共享優先值 –

回答

0

如果您使用PreferenceActivity,則不必手動更新首選項值。 欲瞭解更多信息,請查看以下教程。

Click here

Click here