概述
这是由于SwitchPreference实现中的错误.
调用onPreferenceChange回调:
>第一次通过TwoStatePreference.onClick方法,它只更新SharedPreference.
>第二次通过Switch小部件的切换状态. Here它被调用.
无法评论逻辑,但至少只有在状态发生变化时,框架才应该注意调用onPreferenceChange回调.所以责任在于我们.使用SwitchPreference.isChecked方法检查状态是否已更改.
public boolean onPreferenceChange(Preference preference, Object newValue) {
if(((SwitchPreference) preference).isChecked() != (Boolean) newValue) {
// State got changed
Log.i("Testing", preference.getKey() + " : " + String.valueOf(newValue));
// If you don't want to save the preference change return false from this if block.
}
return true;
}
这是callstack供您参考:
TwoStatePreference.onClick:
MainActivity$SettingsFragment$1.onPreferenceChange(Preference, Object) line: 45
SwitchPreference(Preference).callCh
最后
以上就是直率山水为你收集整理的android 连续调用方法是,android – SwitchPreferences多次调用onPreferenceChange()方法的全部内容,希望文章能够帮你解决android 连续调用方法是,android – SwitchPreferences多次调用onPreferenceChange()方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复