android 处理双击事件监听

自定义一个监听类:

public class OnDoubleClickListener implements View.OnTouchListener {
    private final String TAG = this.getClass().getSimpleName();
    private int count = 0;
    private long firClick = 0;
    private long secClick = 0;
    /**
     * 两次点击时间间隔,单位毫秒
     */
    private final int interval = 1500;
    private DoubleClickCallback mCallback;

    public interface DoubleClickCallback {
        void onDoubleClick();
    }

    public OnDoubleClickListener(DoubleClickCallback callback) {
        super();
        this.mCallback = callback;
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (MotionEvent.ACTION_DOWN == event.getAction()) {
            count++;
            if (1 == count) {
                firClick = System.currentTimeMillis();
            } else if (2 == count) {
                secClick = System.currentTimeMillis();
                if (secClick - firClick < interval) {
                    if (mCallback != null) {
                        mCallback.onDoubleClick();
                    } else {
                        Log.e(TAG, "请在构造方法中传入一个双击回调");
                    }
                    count = 0;
                    firClick = 0;
                } else {
                    firClick = secClick;
                    count = 1;
                }
                secClick = 0;
            }
        }
        return true;
    }
}

调用方式:

myBtn.setOnTouchListener(new OnDoubleClickListener(new OnDoubleClickListener.DoubleClickCallback() {
    @Override
    public void onDoubleClick() {
        //处理双击事件
    }
}));

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android监听 View 的双击事件,可以使用 GestureDetector 来实现。以下是一个示例: 1. 创建一个 GestureDetector 对象并实现 OnGestureListener 接口: ```java GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onDoubleTap(MotionEvent e) { // 在双击事件发生时执行相应的操作 return true; } }); ``` 在上述代码中,`context` 是当前上下文对象。我们创建了一个 GestureDetector 对象,并实现了 OnGestureListener 接口中的 onDoubleTap() 方法,该方法中可以执行双击事件发生时需要执行的操作。 2. 将触摸事件传递给 GestureDetector: ```java view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); } }); ``` 在上述代码中,我们将触摸事件传递给 GestureDetector 的 onTouchEvent() 方法。这样,GestureDetector 将负责处理触摸事件,并在双击事件发生时调用 onDoubleTap() 方法。 3. 在需要监听双击事件的 View 上设置上述触摸监听器: ```java View view = findViewById(R.id.your_view_id); view.setOnTouchListener(onTouchListener); ``` 在上述代码中,`R.id.your_view_id` 是要监听双击事件的 View 的 ID,您需要将其替换为实际的 View ID。 通过以上步骤,您可以在 Android监听 View 的双击事件,并在双击发生时执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值