Java 如何知道按钮是被按下还是被释放?

Java 如何知道按钮是被按下还是被释放?,java,android,Java,Android,我尝试运行Android应用程序时遇到了一个小问题。当我按下并释放主视图上的按钮时,问题就会出现。应用程序的行为就像一个Portphone(按下按钮说话,释放按钮停止) 要通知按钮已按下或松开,我尝试了两个选项: -添加onclick侦听器, -添加onTouchListener 第一种方法只查找被按下的按钮,因此这不是一个可行的解决方案。第二个解决方案能够区分推送和发布,因此我现在使用的就是这个解决方案。代码如下所示: // Initialise handler for Push To Tal

我尝试运行Android应用程序时遇到了一个小问题。当我按下并释放主视图上的按钮时,问题就会出现。应用程序的行为就像一个Portphone(按下按钮说话,释放按钮停止)

要通知按钮已按下或松开,我尝试了两个选项: -添加onclick侦听器, -添加onTouchListener

第一种方法只查找被按下的按钮,因此这不是一个可行的解决方案。第二个解决方案能够区分推送和发布,因此我现在使用的就是这个解决方案。代码如下所示:

// Initialise handler for Push To Talk button
    Button button = (Button) findViewById(R.id.buttonPTT);
    button.setOnTouchListener(new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent me){
            switch(me.getAction()){
            case MotionEvent.ACTION_DOWN:
                Toast.makeText(getApplicationContext(), "PTT pressed", Toast.LENGTH_LONG).show();
                // TODO: Activate Push To Talk
                break;
            case MotionEvent.ACTION_UP:
                Toast.makeText(getApplicationContext(), "PTT released", Toast.LENGTH_LONG).show();
                // TODO: End Push To Talk
                break;
            }
            return false;
        }
    });
问题在于开关的动作情况。在运行时,只有当您按下按钮,移动光标/手指/等,然后松开按钮时,它才会工作。我想要它做的是按下它,并且能够在不移动光标/手指/等的情况下释放它


有人有什么想法吗?

没关系,我似乎已经发现了错误。似乎我的XML布局文件中仍然设置了onClick处理程序,但我忘了删除它

无论如何,如果你读到这篇文章,谢谢你抽出时间