如何知道按钮是否被按下或释放?

时间:2011-02-04 11:28:19

标签: java android

当我尝试运行Android应用程序时,我遇到了一些问题。当我推动&在我的主视图上释放一个按钮。应用程序的行为就像一个portophone(按下按钮进行通话,释放停止)。

要通知按下或释放按钮,我尝试了两个选项: - 添加onClickListener, - 添加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;
        }
    });

问题在于交换机的ACTION_UP情况。在运行时,只有当您按下按钮,移动光标/手指/等,然后释放按钮时,它才会起作用。我想要它做的是按它,并能够释放它而不必移动我的光标/手指/等。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没关系,我似乎已经找到了错误。似乎我的XML布局文件中仍然有一个onClick处理程序集,我忘了删除它。

如果你读到这篇文章,无论如何都要感谢你。