由于操作的不当,重复点击会导致出现很多出乎实现者之外的问题,所以对于这个问题,做了一些适当的处理
解决办法:在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;
}