【发布时间】:2012-01-29 04:01:00
【问题描述】:
我在这里有点困惑。我正在尝试更改 EditTextPreference 的值,但它没有在视图中更新。 (这是在 PreferenceActivity 中)
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.modify_instrument_preferences);
// Set default values
SharedPreferences customSharedPreference = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = customSharedPreference.edit();
modifying = getObjectWithName(); //Some object with a name;
editor.putString("namePref", modifying.getName());
editor.commit();
android.util.Log.d("TEST", "written: "+customSharedPreference.getString("namePref",""));
}
我的 printlns 打印出有效信息,并且 commit() 返回 true,但是在单击 EditTextPreference 时,它会显示旧值。如果我旋转屏幕,导致 onCreate 再次运行,EditTextPreference 具有正确的值。
太令人困惑了。为什么 UI 中没有更新此更改?
编辑:
我不确定为什么上述方法不起作用,但我设法通过这样做来改变它:
EditTextPreference namePref = (EditTextPreference) findPreference("namePref");
namePref.setText("the text");
每次都会更新视图。
【问题讨论】:
标签: android sharedpreferences preferenceactivity