首页 > 解决方案 > 不起作用检查按钮是否被按下

问题描述

我尝试制作一个仅在按住时才起作用的按钮:如果您按下并将手指从按钮移到另一个区域,它将停止工作,如果您按到另一个区域并且按住手指时,将其指向按钮,它将起作用。在 stackoverflow.com 上,一位用户回复并写道 onTouchListener:

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;
           }
       });

我尝试了这段代码,但它不起作用:代码 日志

顺便说一句,如果你不使用这个 check if (v.getLeft () <= event.getX () && v.getRight ()> = event.getX () && v.getTop () <= event.getY () && v .getBottom ()> = event.getY ()) {,按钮可以工作,但不是应该的(不检查按钮按下)

标签: javaandroid-studioactionandroid-buttonontouchlistener

解决方案


推荐阅读