我是靠谱客的博主 文艺板栗,最近开发中收集的这篇文章主要介绍Android 防止过快(多次)点击的实现方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onClick 事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定程度上减少了无效的网络访问量,减轻服务器压力,APP同理),就如下面代码所示:

public final class AppUtils {
  private AppUtils() {

  }

  private static long mLastClickTime;// 用户判断多次点击的时间

  public static boolean isFastDoubleClick() {
    long time = System.currentTimeMillis();
    if (Math.abs(time - mLastClickTime) < 500) {
      return true;
    }
    mLastClickTime = time;
    return false;
  }
}

btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (AppUtils.isFastDoubleClick()){
          // 进行点击事件后的逻辑操作
        }
      }
    });

另一种方式。。。。 新建一个onclicklistener

public abstract class OnMultiClickListener implements View.OnClickListener{
  // 两次点击按钮之间的点击间隔不能少于1000毫秒
  private static final int MIN_CLICK_DELAY_TIME = 1000;
  private static long lastClickTime;

  public abstract void onMultiClick(View v);

  @Override
  public void onClick(View v) {
    long curClickTime = System.currentTimeMillis();
    if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
      // 超过点击间隔后再将lastClickTime重置为当前点击时间
      lastClickTime = curClickTime;
      onMultiClick(v);
    }
  }
}
btn.setOnClickListener(new OnMultiClickListener() {
      @Override
      public void onMultiClick(View v) {
        // 进行点击事件后的逻辑操作
      }
    });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。

最后

以上就是文艺板栗为你收集整理的Android 防止过快(多次)点击的实现方法的全部内容,希望文章能够帮你解决Android 防止过快(多次)点击的实现方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(100)

评论列表共有 0 条评论

立即
投稿
返回
顶部