本文介绍了onShared preferenceChanged不会触发所有的时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个奇怪的问题,用这种方法。这就是所谓的,当我编辑的EditText preference,只有当我改变的价值,并在MultiSelectList preference仅在第一次我改变。这是我的片段code。
I have a weird problem with this method. It's called, when i edit a EditTextPreference, only when i change the value, and on a MultiSelectListPreference only the first time i change.This is my fragment code.
public class PrefFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
addPreferencesFromResource(R.xml.my_preferences);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// DO STUFF
}
@Override
public boolean onPreferenceTreeClick(final PreferenceScreen preferenceScreen, final Preference preference) {
// TODO Auto-generated method stub
super.onPreferenceTreeClick(preferenceScreen, preference);
// DO STUFF
}
@Override
public void onResume() {
super.onResume();
// Set up a listener whenever a key changes
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
}
这是MY_ preferences.xml文件
and this is my_preferences.xml file
推荐答案
移动 unregisterOnShared preferenceChangeListener
从的onPause()
到的onStop()
。
这篇关于onShared preferenceChanged不会触发所有的时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!