我想在点击其他偏好时更改偏好设置。我使用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错误...我做错了什么?
比你
答案 0 :(得分:6)
你的来电,
onSharedPreferenceChanged
然后你的召唤
editor.commit();
通过commit(),您将更改共享首选项,从而调用
onSharedPreferenceChanged
所以循环继续......直到你StackOverflow