如何检测按钮的单击,按下和释放状态.我想在这些状态下执行不同的功能.点击我想调用function1,按下我想调用function2然后在接收时我想调用function3.
我们可以使用View.OnClickListener检测点击状态.我们可以使用View.OnTouchListener检测Button的Pressed和Released状态,并处理ACTION_DOWN和ACTION_UP.我能够单独检测这些状态,但不能一起检测.
下面是OnCLickListener的代码.
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println(" clicked "); } });
下面是OnTouchListener的代码.
button.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v,MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: System.out.println(" pressed "); return true; case MotionEvent.ACTION_UP: System.out.println(" released "); return true; } return false; } });
当我在Button上设置单击并触摸侦听器时,Click事件永远不会被调用.相反,我接受了压制和释放状态.
我怎样才能一起处理这三种状态?
编辑:
解决方法
改变返回true;内部情况MotionEvent.ACTION_DOWN:和案例MotionEvent.ACTION_UP:返回false;或休息;