日常开发中,一般网络请求会做一些按钮重复点击判断(比如登录时点击登录按钮),为了方便,可以把方法写到基类里面,这样继承类就可以直接用了。当然如果放到utils中也行。
废话不多少,直接上代码;
变量:
/** * 防止过快点击事件 */ // DIFF:两次点击按钮之间的点击间隔不能少于的毫秒数 private static long DIFF = 5000; private static long lastClickTime = 0; private static int lastButtonId = -1;
方法:
/** * @author liu * 防止按钮多次点击,默认时间间隔为DIFF:5000毫秒 * @param buttonId 控件的id,用于比对是否同一按钮多次点击 * @return */ public static boolean isFastDoubleClick(int buttonId) { long currentTime = System.currentTimeMillis(); long timeInterval=currentTime-lastClickTime; if (lastButtonId == buttonId && lastClickTime > 0 && timeInterval < DIFF) { LogUtil.e("isFastDoubleClick", "短时间内按钮多次触发"); return true; } lastClickTime = currentTime; lastButtonId = buttonId; return false; } /** * @author liu * 防止按钮多次点击,可指定多次点击之间时间间隔diff * @param buttonId 控件的id,用于比对是否同一按钮多次点击 * @param diff 指定点击之间时间间隔 * @return */ public static boolean isFastDoubleClick2(int buttonId,long diff) { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; long timeInterval=System.currentTimeMillis()-lastClickTime; if (lastButtonId == buttonId && lastClickTime > 0 && timeInterval < diff) { LogUtil.e("isFastDoubleClick", "短时间内按钮多次触发"); return true; } lastClickTime = time; lastButtonId = buttonId; return false; }