android - 单击和双击android中的按钮

标签 android button onclicklistener

在我的应用程序中,我有一个按钮。单击和双击按钮后将执行单独的操作。我怎样才能做到这一点?谢谢

最佳答案

嗯,这很简单,只需覆盖即可。

onClick method of OnClickListener

public abstract class DoubleClickListener implements View.OnClickListener {
private static final long DEFAULT_QUALIFICATION_SPAN = 200;
private boolean isSingleEvent;
private long doubleClickQualificationSpanInMillis;
private long timestampLastClick;
private Handler handler;
private Runnable runnable;

public DoubleClickListener() {
    doubleClickQualificationSpanInMillis = DEFAULT_QUALIFICATION_SPAN;
    timestampLastClick = 0;
    handler = new Handler();
    runnable = new Runnable() {
        @Override
        public void run() {
            if (isSingleEvent) {
                onSingleClick();
            }
        }
    };
}

@Override
public void onClick(View v) {
    if((SystemClock.elapsedRealtime() - timestampLastClick) < doubleClickQualificationSpanInMillis) {
        isSingleEvent = false;
        handler.removeCallbacks(runnable);
        onDoubleClick();
        return;
    }

    isSingleEvent = true;
    handler.postDelayed(runnable, DEFAULT_QUALIFICATION_SPAN);
    timestampLastClick = SystemClock.elapsedRealtime();
}

public abstract void onDoubleClick();
public abstract void onSingleClick();
}

用法

 button.setOnClickListener(new DoubleClickListener() {
        @Override
        public void onDoubleClick() {
            Log.i("onClick", "double");
        }

        @Override
        public void onSingleClick() {
            Log.i("onClick", "single");
        }
    });

关于android - 单击和双击android中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353457/

相关文章:

javascript - $(document).on ('click' 多次触发

android - 如何在适配器的 Kotlin 中提供长点击监听器

安卓开发: restrict user to only run and use my application

android - 在 Android Wear 表盘中显示即将到来的日历事件?

java - 用于更改卡片布局中卡片的按钮

python - 打开其他窗口时tkinter窗口的按钮变成白色

java - Android并发: UI thread edit a variable and other thread read the same variable

java - Android光标越界异常索引0

html - 在文本框中按 Enter 时如何触发 HTML 按钮?

Android事件处理方法