美文网首页
Android的单击双击事件

Android的单击双击事件

作者: 木叶纷飞 | 来源:发表于2018-08-02 10:21 被阅读0次

package com.dianchou.dcw.view.main.point;

import android.os.Handler;

import android.view.MotionEvent;

import android.view.View;

/**

* 创建者    yf

* 创建时间  2018/8/28 17:12

* 描述       ${TODO}

*/

public class SingleDoubleClickListener implements View.OnTouchListener {

    //双击间四百毫秒延时

    private static int timeout = 400;

    //记录连续点击次数

    private int clickCount = 0;

    private Handler handler;

    private MyClickCallBack myClickCallBack;

    public interface MyClickCallBack {

        void oneClick();//点击一次的回调

        void doubleClick();//连续点击两次的回调

    }

    public SingleDoubleClickListener(MyClickCallBack myClickCallBack) {

        this.myClickCallBack = myClickCallBack;

        handler = new Handler();

    }

    @Override

    public boolean onTouch(View v, MotionEvent event) {

        if (event.getAction() == MotionEvent.ACTION_DOWN) {

            clickCount++;

            handler.postDelayed(new Runnable() {

                @Override

                public void run() {

                    if (clickCount == 1) {

                        myClickCallBack.oneClick();

                    } else if (clickCount == 2) {

                        myClickCallBack.doubleClick();

                    }

                    handler.removeCallbacksAndMessages(null);

                    //清空handler延时,并防内存泄漏

                    //计数清零

                    clickCount = 0;

                }

                //延时timeout后执行run方法中的代码

            }, timeout);

        }

        //让点击事件继续传播,方便再给View添加其他事件监听

        return true;

    }

}

使用举例:

View button= findViewById(R.id.button);

view.setOnTouchListener(new MyClickListener

(new MyClickListener.MyClickCallBack() {

            @Override

            public void oneClick() {

                Toast.makeText(MainActivity.this, "单击",

                Toast.LENGTH_SHORT).show();

            }

            @Override

            public void doubleClick() {

                Toast.makeText(MainActivity.this, "双击",

                Toast.LENGTH_SHORT).show();

            }

        }));

相关文章

  • Android的单击双击事件

    package com.dianchou.dcw.view.main.point; import android....

  • Android事件传递机制之View

    Android Touch事件 在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另...

  • js基本事件

    单击事件:onclick:单击事件ondbclick:双击事件 鼠标事件:onmousemove:鼠标移动事件on...

  • 实现html/js同时启用单双击事件

    在同一个dom元素同时启用了单击和双击事件时,双击会触发两次单击事件和一次双击事件,并且触发顺序是:单击1 -> ...

  • 五、jQuery事件

    一、鼠标事件 1、鼠标点击 注意1、双击事件伴随着单击事件,因此双击事件会触发两次单击事件2、单击事件又伴随着mo...

  • jQuery系列(四) -- 事件

    鼠标事件 .click() ==> 单击事件 .dblclick() ==> 双击事件 .mousedown() ...

  • Android手势检测GestureDetector的使用说明

    在Android事件处理中单击,双击,长按,滑动都是很常用的手势操作。GestureDetector对这些操作进行...

  • JS中的事件

    概念:行为。鼠标事件:onclick 左键单击ondblclick 双击oncontextmenu 右键单击...

  • jQuery事件(1)

    鼠标事件 1、click()(单击)& dbclick()(双击)事件 ①$("p").click() ②$(...

  • 事件

    事件触发方法:onclick="单击触发事件";ondblclick="双击触发事件";onmousedown="...

网友评论

      本文标题:Android的单击双击事件

      本文链接:https://www.haomeiwen.com/subject/amljvftx.html