2011-12-16 69 views
2

我想在单击其他首选项时更改首选项。我这样做是与onSharedPreferenceChanged方法和设置像这样的编辑值...Android SharedPreferences未通过editor.commit更改

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

发布logcat的输出。 – 2011-12-16 14:23:44

回答

6

您的通话,

onSharedPreferenceChanged 

那么您的通话

editor.commit(); 

通过提交()你正在改变你的共享偏好,因此呼吁

onSharedPreferenceChanged 

和如此循环下去.....直到你的StackOverflow

* My Christmas SharedPreferences API Link *

相关问题