【Android笔记】Android控件防止被重复点击
在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现。
而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击。
解决的思路如下:
1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间。
2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件。
1 public class CommonUtils { 2 private static long lastClickTime; 3 public static boolean isFastDoubleClick() { 4 long time = System.currentTimeMillis(); 5 long timeD = time - lastClickTime; 6 if ( 0 < timeD && timeD < 800) { //800毫秒,可自己设置适当时长 7 return true; 8 } 9 lastClickTime = time; 10 return false; 11 } 12 }
控件点击的处理:
1 public void onClick(View v) { 2 if (Utils.isFastDoubleClick()) { 3 return; 4 }else{ 5 //弹出Toast或者Dialog 6 } 7 }