软件编程
位置:首页>> 软件编程>> Android编程>> Android双击事件拦截方法

Android双击事件拦截方法

作者:keyboy_rl  发布时间:2022-07-21 19:33:30 

标签:Android,双击事件,拦截

下文我们介绍两种双击事件拦截的方式

1.通过Android的事件分发机制进行拦截(dispatchTouchEvent)

话不多说,直接上代码:


/** 判断是否是快速点击 */
private static long lastClickTime;
public static boolean isFastDoubleClick() {
 long time = System.currentTimeMillis();
 long timeD = time - lastClickTime;
 if (0 < timeD && timeD < 1000) {
  return true;
 }
 lastClickTime = time;
 return false;
}
/** 判断触摸时间派发间隔 */
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
 if (ev.getAction() == MotionEvent.ACTION_DOWN) {
  if (isFastDoubleClick()) {
   return true;
  }
 }
 return super.dispatchTouchEvent(ev);
}

用法就是直接在你需要拦截双击事件的类中加入这两个函数,系统会自动调用dispatchTouchEvent进行事件拦截,屏蔽掉双击事件,可以通过调整上述的时间达到你想要的效果

缺点就是加入后的整个activity都会屏蔽掉双击事件,可能会影响其他组件的正常使用

2.通过一个工具类来使用双击函数


//判断是否是快速点击
private static long lastClickTime = 0L; //上一次点击的时间
public static boolean isFastDoubleClick() {
 long time = System.currentTimeMillis();
 long timeD = time - lastClickTime;
 if(timeD<1000){
  //写自己的双击逻辑
  return true;
 }
 lastClickTime = time;
 return false;
}

使用方法就是将这个函数放到一个工具类中,在你需要进行双击事件拦截时,直接调用这个函数进行判断即可,有没有很方便

来源:http://blog.csdn.net/qq_28260521/article/details/78955456?

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com