Android SharedPreferences не меняется через editor.commit - PullRequest
2 голосов
/ 16 декабря 2011

Я хочу изменить предпочтение, когда нажимаю на другое предпочтение. Я сделал это с помощью метода onSharedPreferenceChanged и установил значение с помощью редактора следующим образом ...

public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
    Preference pref = findPreference(key);

    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);

    SharedPreferences.Editor editor = settings.edit();

    editor.putString("sound","2");
    editor.commit();
    Intent intent3 = new Intent(this, Prefer.class);
    startActivity(intent3);  
    this.setSummary(pref);

Тем не менее, я получаю сообщение об ошибке на editor.commit();, и мой код работает в фоновом режиме несколько раз, прежде чем выдать ошибку StatckOverflow ... Что я делаю не так?

чем ты

1 Ответ

6 голосов
/ 16 декабря 2011

Ваш звонок,

 onSharedPreferenceChanged

тогда ваше призвание

 editor.commit();

С помощью commit () вы изменяете свои общие настройки и, следовательно, вызываете

 onSharedPreferenceChanged

и так цикл продолжается ..... пока вы не StackOverflow

* Ссылка API My Christmas SharedPreferences *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...