Java 不';t工作检查按钮是否按下
我试着制作一个只在按住按钮时才起作用的按钮:如果你按住按钮并将手指从按钮移到另一个区域,它将停止工作;如果你按住另一个区域,并将手指指向按钮,它将起作用。在stackoverflow.com上,一名用户响应并在TouchListener上写道:Java 不';t工作检查按钮是否按下,java,android-studio,action,android-button,ontouchlistener,Java,Android Studio,Action,Android Button,Ontouchlistener,我试着制作一个只在按住按钮时才起作用的按钮:如果你按住按钮并将手指从按钮移到另一个区域,它将停止工作;如果你按住另一个区域,并将手指指向按钮,它将起作用。在stackoverflow.com上,一名用户响应并在TouchListener上写道: btn.setOnTouchListener (new View.OnTouchListener () { @Override public boolean onTouch (View v, MotionEve
btn.setOnTouchListener (new View.OnTouchListener () {
@Override
public boolean onTouch (View v, MotionEvent event) {
if (v.getLeft () <= event.getX () && v.getRight ()> = event.getX () && v.getTop () <= event.getY () && v.getBottom ()> = event. getY ()) {
if (event.getAction () == MotionEvent.ACTION_DOWN)
Log.d ("LOG", "pressed");
if (event.getAction () == MotionEvent.ACTION_UP)
Log.d ("LOG", "released");
if (event.getAction () == MotionEvent.ACTION_MOVE)
Log.d ("LOG", "moving");
}
else
{
Log.d ("LOG", "out of area");
}
return false;
}
});
btn.setOnTouchListener(新视图.OnTouchListener(){
@覆盖
公共布尔onTouch(视图v,运动事件){
if(v.getLeft()=event.getX()&&v.getTop()=event.getY()){
if(event.getAction()==MotionEvent.ACTION\u向下)
Log.d(“Log”,“pressed”);
if(event.getAction()==MotionEvent.ACTION\u UP)
日志d(“日志”、“发布”);
if(event.getAction()==MotionEvent.ACTION\u MOVE)
Log.d(“Log”,“moving”);
}
否则
{
日志d(“日志”、“区域外”);
}
返回false;
}
});
我尝试了此代码,但不起作用:
顺便说一下,如果您不使用此检查
if(v.getLeft()=event.getX()&&v.getTop()=event.getY()){
,则该按钮可以工作,但不能正常工作(不检查按钮按下)按住它,为什么不使用setOnLongClickListener()?onLongClickListener()处理事件并立即结束它(示例:在文本区域中单击时的打开菜单)