这是由于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内容请搜索靠谱客的其他文章。
发表评论 取消回复