CompoundButton调用setChecked多次触发onCheckedChanged
生活随笔
收集整理的這篇文章主要介紹了
CompoundButton调用setChecked多次触发onCheckedChanged
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
當我們只想改變CompoundButton的狀態時,setChecked會出現onCheckedChanged的情況。
原因
源碼可見只要CompoundButton設置了setOnCheckedChangeListener,就會再每次調用setChecked()的時候再次觸發onCheckedChanged。
解決方式
1.setChecked()的時候設置屏蔽,在onCheckedChanged中直接return;
2.清除listener,setOnCheckedChangeListener(null),之后再加回來
所以最好不要在onCheckedChange中寫邏輯,如果要寫也最好不要再setChecked,否則需要自己設置屏蔽;并且CompoundButton默認會搶奪響應點擊,onCheckedChange響應是在Button勾選之后的
總結
以上是生活随笔為你收集整理的CompoundButton调用setChecked多次触发onCheckedChanged的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小众绿软|游戏:Lode Runner
- 下一篇: 扫雷代码下载地址可以打开啦!