Android SharedPreferences没有通过editor.commit更改



我想在点击另一个首选项时更改一个首选项。我用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错误…我做错了什么?

比你

你的呼唤,

 onSharedPreferenceChanged

then your calling

 editor.commit();

通过commit()你改变了你的共享首选项,因此调用

 onSharedPreferenceChanged

,循环继续.....直到你的StackOverflow

My Christmas SharedPreferences API Link *

最新更新