有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

爪哇按下了按钮

我有一个从类“Button”继承的类“myButton”。内部实现的方法“onTouch”,如果您按下按钮,该方法将起作用。当你点击按钮外的任何地方时,我需要执行操作

有没有办法确认触摸是在按钮外进行的

我想到了在视图中添加触摸检查(全屏)的想法。但是在这种情况下,如果单击按钮,两个事件“onTouch”将被激活:在我的类中“myButton”和单击View


共 (1) 个答案

  1. # 1 楼答案

    如果你想处理按下和释放按钮,你可以这样做

        Button button = (Button) findViewById(R.id.button);
        button.setOnTouchListener(new View.OnTouchListener() {        
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    // PRESSED
                    break; // if you want to handle the touch event
                case MotionEvent.ACTION_UP:
                case MotionEvent.ACTION_CANCEL
                    // RELEASED
                    break; // if you want to handle the touch event
            }
            return false;
        }
    });
    

    如果按下一个按钮,如果释放一个按钮,如果你只想按下,你可以相应地改变

    您已经将kotlin和java都标记为这是java,所以如果您想在kotlin中使用它,请告诉我

    ps我返回false,因为如果你不这样做,你将绕过按钮的常规触摸处理。这意味着您将失去按下按钮和触摸波纹的视觉效果。此外,按钮#isPressed()在实际按下按钮时将返回false