Если в моем PreferenceActivity есть событие onSharedPreferenceChanged, то есть проверка, проверена ли CheckBoxPreference или нет, и установка setEnabled для какого-либо другого предпочтения, изменяется ли фактическое значение другого предпочтения в SharedPreferences или нужно установить их вручную?
Что у меня есть:
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? Не похоже, что значение автоматически сохраняется только в зависимости от того, включено оно или нет.