欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新

Android 防止控件被重复点击

来源: 开发者 投稿于  被查看 21052 次 评论:241

Android 防止控件被重复点击


  在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.

  解决的思路如下:

  1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.

  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;

  }

  }

  控件点击的处理:

  public void onClick(View v) {

  if (Utils.isFastDoubleClick()) {

  return;

  }else{

  //弹出Toast或者Dialog

  }

  }

  这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.

相关文章

    暂无相关文章

用户评论