android - 使用 OnTouchListener 和 OnLongClickListener 相互干扰

标签 android ontouchlistener onlongclicklistener

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

重点是按钮 1 被按下 0.1 秒,按钮 2 被按下 2 秒,按钮 3 可以被按下 50 秒甚至更长时间......但是按钮 3 被视为长按而不是触摸后释放5 秒,所以它不会触发我的 Action

我用过:

    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 时它工作正常..

有什么想法吗?

感谢您的支持!!!

最佳答案

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

关于android - 使用 OnTouchListener 和 OnLongClickListener 相互干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551261/

相关文章:

android - 将SD卡中的图像放入android中的imageview

android - 获取SeekBar触摸位置(无进度变化)

android - 无法设置 OnTouchListener

java - 长按无法卸载应用程序

android - 使用子采样比例 ImageView 在触摸位置添加标记针

android - 启动 android.intent.action.VIEW 时出现 ActivityNotFoundException

c# - SmsManager.SendTextMessage 抛出异常

android - 我想在使用 kotlin 在 android 中单击 Button 后更改背景

android - 整个屏幕的onTouchListener

android - onLongClickListener 不适用于 WebView