我想在点击另一个首选项时更改一个首选项。我用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 *