Android: onSharedPreferenceChanged()

#android

#Android

Вопрос:

У меня есть ListPreference в настройках моего приложения. И у меня есть onSharedPreferenceChanged() метод, в котором я что-то делаю, если значение было изменено. Но если пользователь нажмет на тот же элемент списка, onSharedPreferenceChanged() который вызывается снова. Но я не хочу ничего делать, если пользователь нажал на ту же строку в ListPreference… Как с этим справиться? Как проверить, onSharedPreferenceChanged() изменилось ли значение или нет? Спасибо.

Например

  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
        String key) {
    if (key.equals(SOME_KEY)) {
        setResult(2);
    }
}
  

Но я не имею обыкновения устанавливать результат, если значение одинаковое

Ответ №1:

Вам лучше сделать это в Preference.OnPreferenceChangeListener подклассе.

Ответ №2:

Просто используйте sharedPreferences.getString(key,defValue);

Комментарии:

1. Хотя эта строка может отвечать на вопрос, мы предпочитаем ответы с некоторым объяснением.