在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.
解决的思路如下:
下面请看代码:
工具类:
- public
class CommonUtils { -
private static long lastClickTime; -
public static boolean isFastDoubleClick() { -
long time = System.currentTimeMillis(); -
long timeD = time - lastClickTime; -
if ( 0 < timeD && timeD < 800) { -
return true; -
} -
lastClickTime = time; -
return false; -
} - }
控件点击的处理:
- public
void onClick(View v) { -
if (Utils.isFastDoubleClick()) { -
return; -
}else{ -
//弹出Toast或者Dialog -
} -
}
这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.