package cn.mallupdate.android.util; import android.view.MotionEvent; import android.view.View; 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 = 250; 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; }}
//调用方式
Btn.setOnTouchListener(new OnDoubleClickListener(new OnDoubleClickListener.DoubleClickCallback() { @Override public void onDoubleClick() { //处理双击事件 } }));
安卓的双击事件处理
最新推荐文章于 2021-06-09 20:38:27 发布