Android SharedPreferences没有通过editor.commit进行更改

时间:2011-12-16 14:18:49

标签: android sharedpreferences

我想在点击其他偏好时更改偏好设置。我使用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 个答案:

答案 0 :(得分:6)

你的来电,

 onSharedPreferenceChanged

然后你的召唤

 editor.commit();

通过commit(),您将更改共享首选项,从而调用

 onSharedPreferenceChanged

所以循环继续......直到你StackOverflow

* My Christmas SharedPreferences API Link *