-
2017-08-21 14:24:35
在很多Android操作系统中,将开发者模式隐藏了起来,必须连续点击版本号多次才可出现开发者模式。那么如何检测点击多次呢?代码如下:
//数组存储点击次数 long[] mHits = new long[2]; @Override public void onClick(View v) { //实现双击方法 //src 拷贝的源数组 //srcPos 从源数组的那个位置开始拷贝. //dst 目标数组 //dstPos 从目标数组的那个位子开始写数据 //length 拷贝的元素的个数 System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); //实现左移,然后最后一个位置更新距离开始的时间,如果最后一个时间和最开始时间小于500,即双击 mHits[mHits.length - 1] = SystemClock.uptimeMillis(); if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) { } }
更多相关内容 -
Android 防止多次重复点击的三种方法
2017-12-07 16:02:00在项目中经常会遇到对按钮、自定义控件的 Item 等防止多次重复的点击的问题,下面做一个小结。方法1:使用 RxJava 的 throttleFirst()具体代码如下: /** * 防止重复点击 * * @param target 目标view * @param ...在项目中经常会遇到对按钮、自定义控件的 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<Object>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Object o) { listener.onClick(target); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); }
上述代码中,利用
throttleFirst
方法,取 1 秒内的第一次点击进行响应。不过该方法在 RecycleView 的 item 的防重复点击时有可能失效,此时可采用下面的方法 2。
方法2:利用系统时间差
//全局定义 private long lastClickTime = 0L; // 两次点击间隔不能少于1000ms private static final int FAST_CLICK_DELAY_TIME = 1000; //在设置Item的监听时 item.setOnItemClickListener(xxx){ if (System.currentTimeMillis() - lastClickTime >= FAST_CLICK_DELAY_TIME) { //下面进行其他操作,比如跳转等 XXX lastClickTime = System.currentTimeMillis(); } }
方法3:工具类,用于判断是否快速点击
该方法与方法 2 的原理类似:
// 两次点击间隔不能少于1000ms private static final int FAST_CLICK_DELAY_TIME = 1000; private static long lastClickTime; public static boolean isFastClick() { boolean flag = true; long currentClickTime = System.currentTimeMillis(); if ((currentClickTime - lastClickTime) >= FAST_CLICK_DELAY_TIME ) { flag = false; } lastClickTime = currentClickTime; return flag; }
-
Android之有效防止按钮多次重复点击
2016-05-04 10:17:52为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~那么如何有效避免这种情况的发生呢? 我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,...LZ-Says:给大家推荐一个网站,有兴趣可以查阅,想为大家贡献一点自己的力量也可以投稿,老大审核通过会发表,更好的帮助有需要的人~欢迎大家踊跃投稿~地址如下:
http://www.123si.org/android为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~
那么如何有效避免这种情况的发生呢?
我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,则认为是无效操作,否则进行相关业务处理首先将这块提取为工具类(方便接下来的调用),现在就起名为:ButtonUtils
public class ButtonUtils { private static long lastClickTime = 0; private static long DIFF = 1000; private static int lastButtonId = -1; /** * 判断两次点击的间隔,如果小于1000,则认为是多次无效点击 * * @return */ public static boolean isFastDoubleClick() { return isFastDoubleClick(-1, DIFF); } /** * 判断两次点击的间隔,如果小于1000,则认为是多次无效点击 * * @return */ public static boolean isFastDoubleClick(int buttonId) { return isFastDoubleClick(buttonId, DIFF); } /** * 判断两次点击的间隔,如果小于diff,则认为是多次无效点击 * * @param diff * @return */ public static boolean isFastDoubleClick(int buttonId, long diff) { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if (lastButtonId == buttonId && lastClickTime > 0 && timeD < diff) { Log.v("isFastDoubleClick", "短时间内按钮多次触发"); return true; } lastClickTime = time; lastButtonId = buttonId; return false; } }
我们通过判断俩次点击时间间隔去判定当前点击操作是否为有效操作。那么如何在使用中调用呢?继续往下看。。。
gv_isf.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if (!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore)) { //写你相关操作即可 } } });
!ButtonUtils.isFastDoubleClick(R.id.gv_integralstore):这块是关键。我的想法就是在单击事件中进行判断,看看当前的点击事件是否为有效点击事件
好了,一个简单又实用的防止按钮多次重复点击的工具类就搞定了。。。
如果大家还有什么比较实用的方法,,,可以一起交流哈~
-
android 拍照或从本地相册多次添加多张图片
2014-10-21 14:17:34自己写的android 拍照或从本地相册多次添加多张图片亲测可用 -
android 4.2.2 多次点击出现的界面怎么实现
2015-04-23 06:50:40多次点击之后出现一个界面,在这个界面上画一个圆,就是如图所示的界面了。。。 -
android 防止Button的频繁点击,多次执行点击事件
2016-04-18 10:42:11开发过程中经常遇到连续快速的点击带有点击事件的view,可能会执行多次点击事件, 怎么控制一个带有点击事件的View多次点击事件的时间间隔大于0.5s呢此文章作为笔记,摘自 防止Button的频繁点击,多次执行点击事件
感谢作者分享!
开发过程中经常遇到连续快速的点击带有点击事件的view,可能会执行多次点击事件,
怎么控制一个带有点击事件的View多次点击事件的时间间隔大于0.5s呢
首先写一个abstract类继承OnClickListener
public abstract class OnClickEvent implements View.OnClickListener { public static long lastTime; public abstract void singleClick(View v); @Override public void onClick(View v) { if (onDoubClick()) { return; } singleClick(v); } public boolean onDoubClick() { boolean flag = false; long time = System.currentTimeMillis() - lastTime; if (time > 500) { flag = true; } lastTime = System.currentTimeMillis(); return flag; } }
解释:
- 每次点击事件执行之前 先判断俩次点击间隔是否小于500毫秒
调用
1 2 3 4 5 6
mClickView.setOnClickListener(new OnClickEvent() { @Override public void singleClick(View v) { } });
-
Android开发之实现多次点击事件
2014-12-02 17:38:20在Android中给我们提供了单次点击事件。但并没有给我们提供双击,或者实现在一定时间内的多次事件。所以需要我们自己在单机监听上进行修改实现。 有如下两种实现方式: 1、定义一个存贮上一个第一次点击的变量,... -
Android Toast封装点击多次只显示一次,并解决连续点击后,不在显示的问题
2019-04-12 18:01:19如果连续多次点击显示Toast 的话,之后再点击,会一段时间不显示。 解决: public static void showShort(CharSequence sequence) { if (toast == null) { toast = Toast.makeText(sContext, ... -
Android控件的两次及多次点击事件
2016-05-16 11:10:42多次点击事件的原理:记录每次点击事件的当前时间,判断最后一次点击与第一次点击事件的时间的差值,如果小于500ms(可以自己定义这个值),认为是多次点击事件。下面以3次点击事件为例写一个代码。 1,mHits数组长度... -
Android 防止控件被重复点击,多次提交
2016-04-05 16:48:23Android 防止控件被重复点击,多次提交 -
《Android 获得点击事件两次之间的时间差和拦截多次点击事件》
2017-02-09 10:45:12在点击过程中需要判断两次点击事件的时间间距; 2. 同一个点击事件执行了两次,我们需要对其进行拦截; 3. 多次相应事件也可以该方法进行事件拦截。 二、具体的案例 很简单的一个登录按钮的点击事件: ... -
【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
2016-11-03 15:15:20在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击... -
Android安卓关于避免按钮快速多次点击问题解决办法
2016-09-08 14:12:48Button 按钮避免连续点击问题的三种解决办法 -
Android 防抖动多次点击问题处理及RxBinding事件流使用
2017-07-18 00:54:00如果出现延迟情况造成界面短时间没响应,用户接下来就很有可能再去点击一次按钮去提交,这样就的话会造成上一个事件还未处理完又多了一个新的事件需要处理,就会出现提交两次订单到后台服务器或支付两次,看似小问题... -
Android 连续多次点击事件的实现
2017-06-21 17:09:53Android 连续多次点击事件的实现我们在开发中有时候需要做一些影藏的功能,例如:设置下的开发模式,需要连续点击5次后才会显示。 在这里分享一个网友实现的比较简单的,优雅的方式:public class MainActivity ... -
Android中判断用户多次连续点击
2015-10-29 18:25:00在实际开发中有时候会要去判断用户是否在多次的连续点击某个按钮,效果类似于安卓手机中用户连续的点击系统版本会调出开发者模式一样 private void clickStyle() { if (time == 0) { time = System.... -
如何判断Android多次点击事件
2016-07-19 10:57:34android本次没有提供双击或者多次点击事件,需要我们自己实现。 思想:使用数组记录点击时的系统时间,如果当前点击事件发生后点击了3次并且当前的系统时间和第一次点击事件发生的时间的差值小于500则认为是... -
Android--Toast多次点击只显示一次
2017-07-26 16:31:57在日常开发中,相信不少朋友都经常接触到Toast,相信用法对初学者来说应该也不是问题了。...但是大家可能也会发现,如何控制Toast点击多次只显示一次呢?所以今天将为大家介绍。 一、首先,我们先是编写一 -
Android 防止多次点击提交数据或其他
2013-07-01 19:29:29今天加一个功能出现一个问题,由于手机反应慢还是神马原因,用户对一个button 可快速的多次点击。那么 可能出现问题: 比如 多次提交数据... 反正我是遇到了.. So.... package com.test1.test; import android.app.... -
Android项目中多次操作SharedPreferences导致ANR场景的解决
2021-10-21 12:46:51Android项目中多次操作SharedPreferences导致ANR场景的解决 文章目录系列文章目录项目背景:以定位来获取广告的方式为例:所遇到的挑战:解决问题的步骤:问题的解决最近朋友推了一篇字节的博客(以下文字以及图片... -
Android双击,连续点击5次
2017-05-24 14:40:24上面实现思路很简单,但是当要实现多次点击时,上面的方法就不够用了,这里写下GoogleAPI提供的方法: findViewById(R.id.button2).setOnClickListener( new View.OnClickListener() { final static int ... -
代码控制一段时间只触发一次事件(防止多次点击) Android
2017-06-05 15:28:16代码控制一段时间只触发一次事件(防止多次点击事件的产生) Android思路一段时间内让系统只处理一个事件,时间可以自己控制,用判断即可。SystemClock系统计时的,单位毫秒。 代码块 private long lastonclickTime=... -
安卓8.1系统多次点击版本号不显示开发者选项
2019-01-18 15:33:14在安卓8.1系统中去修改点击系统设置中的版本号5次也不显示开发者选项是到packages/apps/Settings/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java类中handlePreferenceTreeClick()函数... -
最新的Android版本是什么?
2020-09-28 14:02:44Android can be confusing. There are a lot of different versions, and many of them are still running on devices today. Keeping up with the latest version can be a challenge, but fret not—we have you ... -
Android完美解决多次点击Toast一直提示不消失问题
2017-04-27 13:54:54没处理Toast前,点多少次就提示多少次,体验很不友好代码:Toast.makeText(context,"内容",Toast.LENTH_SHORT).show处理Toast后效果:代码:/** * Toast工具类 */ public class ToastUtil { private static Toast ... -
Android之有效防止按钮多次重复点击的方法(必看篇)
2018-03-08 15:33:00为了防止测试妹子或者用户频繁点击某个按钮,导致程序在短时间内进行多次数据提交or数据处理,那到时候就比较坑了~那么如何有效避免这种情况的发生呢? 我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,... -
防止Android过快点击造成多次事件的三种方法
2016-06-08 09:47:41问题onClick()事件是Android中常见的回调事件,正常情况下...但不小心在短时间内多次点击按钮(可能是用户手机比较卡顿),启动了多个结算页面,用户支付完成后又回到订单页面,什么鬼?(我要卸载了) btnPay.setOnCl -
android如何实现多次点击按钮,点击一次按钮文本就加一
2016-04-24 05:33:06我想写一个设置闹钟的android页面,要想点击向上调时间的按钮,数字递减,点击向下调时间的按钮数字递增,请问大神怎么实现,我是菜鸟,有没有具体代码?!求大神!!! -
[Android] 多次按钮点击Toast重复显示解决方案
2016-10-11 20:24:09但是多次点击此按键时,Toast会一直显示,点击的次数越多,显示的时间越长(其实就是多次点击按键时,Toast顺序响应,使得总的展示时间变长,给用户不友好的展示)。 多次点击后Toast一直显示的效果: 【解决... -
Android studio版本号查看的三种方法
2021-06-07 09:07:34Android studio版本号查看的三种方法发布于 2016-04-10 22:50:17 | 688 次阅读 | 评论: 0 | 来源: 网友投递Android Studio Android 开发环境Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA....