有时需要在程序初始化界面时,讲有些例如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监听器问题
时间: 2024-10-29 01:01:38