有时需要在程序初始化界面时,讲有些例如toggleButton等控件按照需求勾选,此时会发现,当我setChecked时会触发onCheckedChanged监听器,导致这部分代码被调用两次。解决方法时区分开人为点击和setChecked,在监听器中加入一个判断,是否按下:
@Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if(!buttonView.isPressed())return; //加这一条,否则当我setChecked()时会触发此listener ... ... }
另外,还有个感触,做IT的百度不行,真心离不开Google 啊,此问题参考StackOverFlow(http://stackoverflow.com/questions/9129858/how-can-i-distinguish-whether-value-is-changed-by-user-or-programmatically-incl)
setChecked方法触发onCheckedChanged监听器问题,布布扣,bubuko.com
setChecked方法触发onCheckedChanged监听器问题
原文地址:http://blog.csdn.net/echojiangyq_fight/article/details/37514923