android 不能重复点击,Android 防止多次重复点击的三种方法的示例

在项目中经常会遇到对按钮、自定义控件的 Item 等防止多次重复的点击的问题,下面做一个小结。

方法1:使用 RxJava 的 throttleFirst()

具体代码如下:

/**

* 防止重复点击

*

* @param target 目标view

* @param listener 监听器

*/

public static void preventRepeatedClick(final View target, final View.OnClickListener listener) {

RxView.clicks(target).throttleFirst(1, TimeUnit.SECONDS).subscribe(new Observer() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(Object object) {

listener.onClick(target);

}

});

}

上述代码中,利用throttleFirst方法,取1秒内的第一次点击进行响应。

方法2:利用系统时间差

//全局定义

private long lastClickTime = 0L;

private static final int FAST_CLICK_DELAY_TIME = 500; // 快速点击间隔

//在设置Item的监听时

item.setOnItemClickListener(xxx){

if (System.currentTimeMillis() - lastClickTime < FAST_CLICK_DELAY_TIME){

return;

}

lastClickTime = System.currentTimeMillis();

//下面进行其他操作,比如跳转等

XXX

}

该方法主要针对于自定义控件的点击。

方法3:工具类,用于判断是否快速点击

该方法与方法2 的原理类似:

private static final int MIN_DELAY_TIME= 1000; // 两次点击间隔不能少于1000ms

private static long lastClickTime;

public static boolean isFastClick() {

boolean flag = true;

long currentClickTime = System.currentTimeMillis();

if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) {

flag = false;

}

lastClickTime = currentClickTime;

return flag;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值