赞
踩
由于操作的不当,重复点击会导致出现很多出乎实现者之外的问题,所以对于这个问题,做了一些适当的处理
解决办法:在BaseActvity(一个基类Activity,所有Activity都集成BaseActivity)中实现onTouchEvent,dispatchTouchEvent方法,处理点击的时间间隔
@Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { // 判断连续点击事件时间差 if (DoubleClickUtil.isFastClick()) { return true; } } return super.dispatchTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // 判断连续点击事件时间差 if (DoubleClickUtil.isFastClick()) { return true; } } return super.onTouchEvent(event); }
DoubleClickUtil.isFastClick()的代码实现:
/** * 两次点击间隔不能少于500ms */ private static final int MIN_DELAY_TIME = 500; private static long lastClickTime; public static boolean isFastClick() { boolean flag = true; long currentClickTime = System.currentTimeMillis(); if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) { flag = false; } lastClickTime = currentClickTime; return flag; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。