转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50606953 文章出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货!
问题:
执行到setchecked()方法,会自动调用OnCheckedChangeListener()这个接口解决方法:
第一种:
区分开人为点击和执行setChecked()函数,在监听器中加入一个判断,是否按下:
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//当按钮被按下时会触发此listener
if(!buttonView.isPressed())return;
}
第二种: 使用setOnClickListener代替OnCheckedChangeListener()
holder.switchEvent.setChecked(event.isEnable());
holder.switchEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
System.err.println(((Switch)view).isChecked());
}
});
http://my.oschina.net/u/1187306/blog/195417?fromerr=pEovT1Jy
http://www.iteye.com/problems/102119
关注我的公众号,轻松了解和学习更多技术