Android 防止按钮控件被重复点击

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

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


点击进入: 品牌服饰鞋包9.9元特价包邮抢购:http://shop109590806.taobao.com/


解决的思路如下:

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

 2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件

 注:其实用时间去判断重复点击,更多的是防止短时间大量重复或者也可是说是无效的操作, 而间隔时间要根据具体项目中需求情况而定. 

下面请看代码:

工具类:

 

[java]  view plain copy
  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    
  7.             return true    
  8.             
  9.         lastClickTime time;     
  10.         return false    
  11.      
  12.  

 

控件点击的处理:

 

[java]  view plain copy
  1. public void onClick(View v)    
  2.     if (CommonUtils.isFastDoubleClick())    
  3.         return   
  4.     }else 
  5.         //弹出Toast或者Dialog  
  6.     
  7.     

这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.
AndroidAndroid防止过快点击造成多次事件执行(防止按钮重复点击 在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onCli 阅读详情

相关推荐

Android之有效防止按钮多次重复点击的方法(必看篇)

为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~ 那么如何有效避免这种情况的发生呢? 我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,则认为是无效操作,否则进行相关业务处理 首先将这块提取为工具类(方便接下来的调用),现在就起名为:ButtonUtils public class ButtonUtils { private static long lastClickTime = 0; private static long DIFF = 1000; private static int lastButton

kotlin扩展函数避免快速点击

//定义有效点击时长 private var clickEffectiveTime = 1000L //记录上次点击的时间 private var lastClickTime: Long = 0 infix fun View.clickDelay(clickAction: () -> Unit) { this.setOnClickListener { if (this.hashCode() != hash) { hash

qq_44203816的博客 936

Android 防止过快(多次)点击的实现方法

很多用户经常会出现过快且多次点击同一按钮的情况,本篇文章主要介绍了Android 防止过快点击的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Android 防止连续点击的方法

在开发中会遇到这种情况,就是连续快速点击一个按钮,这个按钮也许是触发启动一个activity也许是访问网络数据或者是别的,而此时的连续点击就会造成多次触发这些事件,造成不必要的activity启动或者资源浪费等等。要解决此方法很简单,只需要以下这么做: 首先定义一个Utils类: public class Utils{     private static long lastClickT

MySunshine的专栏 978

防止按钮快速点击的方法

public class Utils { // 两次点击按钮之间的点击间隔不能少于1000毫秒 private static final int MIN_CLICK_DELAY_TIME = 1000; private static long lastClickTime; public static boolean is...

ZhangXuxiaoqingnian的博客 913

防止抖动

/** 防抖动点击 @author jiangshicheng */ public class AntiShakeUtils { private final static long INTERNAL_TIME = 1000; /** Whether this click event is invalid. @param target target view @return true,...

zck123456789的博客 779

Android 防止按钮控件重复点击.

转载Android 防止控件重复点击 解决的思路如下: 1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间. 2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件 工具类:public class CommonUtils { private static l

三颗猴面包树 594

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

在项目中经常会遇到对按钮、自定义控件的 Item 等防止多次重复点击的问题,下面做一个小结。方法1:使用 RxJava 的 throttleFirst()具体代码如下:/*** 防止重复点击** @param target 目标view* @param listener 监听器*/public static void preventRepeatedClick(final View target,...

weixin_35895994的博客 590

防止控件被反复点击

http://blog.csdn.net/lvxiangan/article/details/8759645 http://blog.csdn.net/lvxiangan/article/details/8759645 http://blog.csdn.net/lvxiangan/article/details/8759645 http://blog.csdn.net/lvxia

359

Android防止重复点击的小技巧

点击时设置时间标志,判断2次点击的时间差,自定义一个时间间隔SPACE_TIME,做判断:当2次点击的时间差大于SPACE_TIME时才能出发点击。 工具类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

不二菜菜子的博客 397

android判断是否被点击方法,Android 防止多次重复点击的三种方法的示例

在项目中经常会遇到对按钮、自定义控件的 Item 等防止多次重复点击的问题,下面做一个小结。方法1:使用 RxJava 的 throttleFirst()具体代码如下:/*** 防止重复点击** @param target 目标view* @param listener 监听器*/public static void preventRepeatedClick(final View target,...

weixin_30840919的博客 739

Android修行手册-和Button的邂逅以及实现selector选择器

Buttonandroid:text=“这是按钮” />

2401_85700009的博客 990

笔记:AOP实现Android重复点击

笔记:AOP实现Android重复点击 1.在项目根目录的build.gradle里依赖AspectJX dependencies { classpath 'com.android.tools.build:gradle:4.0.1' classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10' // NOTE: Do not place your applicatio.

聚焦沙鹰的博客 1089

android 功能防抖,Android 功能防抖

功能防抖理解的意思是防止短时间内多次点击或者输入导致的重复请求。常见情景1.Activity跳转,我们一般用Button写onClick监听然后跳转,如果你的目标Activity的启动模式为默认,会出现多次创建目标activity问题。2.单控件多次点击请求网络数据。3.多控件的组合防抖,只取最后一次请求。4.搜索功能,数据量大的时候会出现卡顿现象,例如在EditText中输入车牌号进行查询,我们...

weixin_36343353的博客 763

防止控件被多次点击

//防止控件被多次点击 void disableView(final View view){ view.setClickable(false); //延迟五秒 回复点击事件 new Handler().postDelayed(new Runnable() { @Override public void run() {

lzq520210的博客 654

阻止在极短的时间重复执行某个函数

/** * 阻止在极短的时间重复执行某个函数中的代码 * @author wanlh * */ public class ReEventsController { private boolean isRepeatFlag = false; private MyRunnable mMyRunnable; ...

weixin_34265814的博客 244

Android 防止控件重复点击,多次提交

Android 防止控件重复点击,多次提交

恰好你来,恰好我在 4468

Android 防止控件重复点击

 在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复点击为无效点击.   解决的思路如下:   1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.   2. 每次点击前需要进行判断, 用lastClickTime 和...

lizhong 642
上一篇: Android在网页下(WebView中运用HTML)点击按钮打开本地手机应用程序
下一篇: Android在Service中弹出对话框(Dialog),即全局性对话框
___小星星丶
博客等级 码龄16年 164粉丝 25原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值