最近做一个项目,需要使用button。其中有一个需求就是默认情况下一个button是要被默认选中的。很自然的,就想到了使用button.setPress(true)来实现这个功能。代码加上去之后看效果,果然实现了。但是。。。在我点击这个按钮之后,这个按钮的选中状态又消失了。我试着在该按钮的点击事件中加入button.setPress(true)来再次使其处于点中状态,发现并没有效果。然后我又在其他按钮的点击事件中把该按钮设为选中状态,是有作用的。初步猜测在onclick事件中,系统会做一个点击动画,然后清空该按钮的点中状态。
既然这样,要实现选中功能,该如何实现呢?嘿嘿,google之。很快,就搜索到了想要的答案,经过改良,就实现了想要的功能。将onclick事件改为ontouch事件,在ontouch事件中捕获点击事件然后处理就可以了。
your_btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN) return true;
if(event.getAction()!=MotionEvent.ACTION_UP) return false;
doSomething();
you_btn.setPressed(true);
return true;
}
});
至此,基本完成。