使用OnTouchListener和OnLongClickListener会相互干扰

4

我有一个按钮,它使用onclicklistener和onlongclicklistener,还有一个使用ontouchlistener的按钮...

重点是,按钮1按下0.1秒,按钮2按下2秒,按钮3可能会按下50秒甚至更长时间... 但是按钮3被视为长按,而不是在5秒后释放触摸,因此它不会触发我的动作。

我使用了:

    MainActivity extends Activity implements View.OnClickListener,
        View.OnLongClickListener, View.OnTouchListener {

    button1.setOnClickListener(this);
    button2.setOnLongClickListener(this);
    button3.setOnTouchListener(this);

    public boolean onTouch(View v, MotionEvent event) {
    switch (v.getId()) {
    case R.id.button3:
         if(event.getAction() == MotionEvent.ACTION_DOWN) {
             DoTest1();
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
             DoTest2();
                }
        break;
    }
    return false;
}

当我移除onlongclicklistener时,它可以正常工作。

有什么想法吗?

感谢您的支持!


你可能想为这个问题打上编程语言的标签... - Julian H. Lam
安卓...所以...我认为应用发明家...JAVA... - Marco
1个回答

1

您可以在按钮3上使用View.setLongClickable(false)


1
返回 true,但是在长按时返回默认的 false 可以让其他操作继续 :) - Marco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接