我有如下的前置选项:
public class Opciones extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.opciones);
SharedPreferences sp = getPreferenceScreen().getSharedPreferences();
EditTextPreference editTextPref = (EditTextPreference) findPreference( "opcCodigo" );
editTextPref.setSummary(sp.getString("opcCodigo", ""));
EditTextPreference editTextPref2 = (EditTextPreference) findPreference( "opcUrl" );
editTextPref2.setSummary(sp.getString("opcUrl", ""));
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference pref = findPreference(key);
if (pref instanceof EditTextPreference) {
EditTextPreference etp = (EditTextPreference) pref;
pref.setSummary(etp.getText());
}
}
}事实是,当我更改数据时,字段不会刷新,我必须关闭活动并再次启动它才能看到它们。
我错过了什么?
提前感谢
发布于 2013-03-06 20:32:17
实现OnPreferenceChangeListener并覆盖以下方法。
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
//newValue is the edited data
if(editTextPref == preference) editTextPref.setSummary(newValue);
else editTextPref2.setSummary(newValue);
}发布于 2013-03-06 20:38:03
试试这个:
添加OnSharedPreferenceChangeListner的
public class Opciones extends PreferenceActivity implements
OnSharedPreferenceChangeListener@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key){
// ...
}https://stackoverflow.com/questions/15247387
复制相似问题