在开发中常常会遇到这样的状况,一个按钮点击后会弹出Toast或者Dialog,若是快速重复地点击,则Toast则会重复地出现. 而咱们想要的效果是必定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.spa
解决的思路以下: code
1. 须要定义一个全局变量 lastClickTime, 用来记录最后点击的时间. blog
2. 每次点击前须要进行判断, 用lastClickTime 和当前时间想比较,而且更新最后点击时间,若小于临界值,则算无效点击,不触发事件 事件
下面请看代码:开发
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; } }
控件点击的处理:ast
public void onClick(View v) { if (Utils.isFastDoubleClick()) { return; }else{ //弹出Toast或者Dialog } }