Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不';t工作检查按钮是否按下_Java_Android Studio_Action_Android Button_Ontouchlistener - Fatal编程技术网

Java 不';t工作检查按钮是否按下

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

我试着制作一个只在按住按钮时才起作用的按钮:如果你按住按钮并将手指从按钮移到另一个区域,它将停止工作;如果你按住另一个区域,并将手指指向按钮,它将起作用。在stackoverflow.com上,一名用户响应并在TouchListener上写道:

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()处理事件并立即结束它(示例:在文本区域中单击时的打开菜单)