下安卓中封装的双击和单机事件

Posted WidgetBox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下安卓中封装的双击和单机事件相关的知识,希望对你有一定的参考价值。

写双金事件有很多种方法:之前有用点击的时间判断 或者重写控件的ontouch事件来自定义单双击

下面封装一个单双击事件记录下方便使用

不多说直接上干货哇

public abstract class MySingleDoubleClick implements View.OnClickListener {

    private static final int TIMEOUT = 400;

    private int clickCount = 0;
    private Handler handler;

    protected MySingleDoubleClick() {
        handler = new Handler();
    }

    @Override
    public void onClick(View v) {
        clickCount++;
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (clickCount == 1) {
                    onSingleClick(v);
                } else if (clickCount == 2) {
                    onDoubleClick(v);
                }
                handler.removeCallbacksAndMessages(null);
                clickCount = 0;
            }
        }, TIMEOUT);
    }

    /**
     * 单击实现
     *
     * @param v 视图
     */
    public abstract void onSingleClick(View v);

    /**
     * 双击实现
     *
     * @param v 视图
     */
    public abstract void onDoubleClick(View v);

}

  

使用方法
        tiktokPlayView.setOnClickListener(new MySingleDoubleClick() {
            @Override
            public void onSingleClick(View v) {
 
            }

            @Override
            public void onDoubleClick(View v) {
               
               
            }
        });

  原理是继承并重写点击事件 这个也是通过时间来判断

TIMEOUT 双击间隔的时间自己定义


leileitua

以上是关于下安卓中封装的双击和单机事件的主要内容,如果未能解决你的问题,请参考以下文章

双击和单击事件冲突解决方法

双击和单击事件冲突解决方法

QT编程Widget鼠标事件

Cocos2D-X2.2.3学习笔记8(处理精灵单击双击和三连击事件)

用户自定义TreeView控制双击冒泡事件WPF MVVM问题,怎么解决

如何在 Asp.net c# 中为 GridView 行启用双击和单击