Android防止按钮快速重复点击

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

一、全局

1public class Utils { 2 // 两次点击按钮之间的点击间隔不能少于1000毫秒 3 private static final int MIN_CLICK_DELAY_TIME = 1000; 4 private static long lastClickTime; 5 6 public static boolean isFastClick() { 7 boolean flag = false; 8 long curClickTime = System.currentTimeMillis(); 9 if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { 10 flag = true; 11 } 12 lastClickTime = curClickTime; 13 return flag; 14 } 15 }

使用1方法

1btn.setOnClickListener(new View.OnClickListener() { 2 @Override 3 public void onClick(View v) { 4 if (Utils.isFastClick()) { 5 // 进行点击事件后的逻辑操作 6 } 7 }

单个按钮接口写法

1public abstract class OnMultiClickListener implements View.OnClickListener{ 2 // 两次点击按钮之间的点击间隔不能少于1000毫秒 3 private static final int MIN_CLICK_DELAY_TIME = 1000; 4 private static long lastClickTime; 5 6 public abstract void onMultiClick(View v); 7 8 @Override 9 public void onClick(View v) { 10 long curClickTime = System.currentTimeMillis(); 11 if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) { 12 // 超过点击间隔后再将lastClickTime重置为当前点击时间 13 lastClickTime = curClickTime; 14 onMultiClick(v); 15 } 16 } 17 }

方法2使用

1btn.setOnClickListener(new OnMultiClickListener() { 2 @Override 3 public void onMultiClick(View v) { 4 // 进行点击事件后的逻辑操作 5 } 6 });
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

vue 节流、拖拽指令

1、在开发中时长遇到按钮重复点击或者多次点击的情况比如创建订单或者其他情况,当然也可以通过设置变量开关,禁止状态,这里就分享一个节流的指令javascriptVUE3好像指令的生命周期和组件的生命周期同步了//立即执行版本,点击后会执行一次,然后进入定时器exportconstthrottle{inserted:function

JavaScript简单介绍

原文链接:什么是JavaScript?JavaScript是一种轻量级的编程语言(脚本语言)主要应用在前端方面。在Web层面上,就是给网页添加了交互的能力。比如点击某个按钮跳转到某个页面,点击登录按钮进行登录操作,渲染页面的数据等等。JS在前端领域是非常非

vue-button设置按钮是否可点击状态

保存exportdefaultdata()return;,computed:langAbbrs()returnfalse;//truefalse,,methods:addSave()console.log('click点击了保存按

Jenkins API Token

JenkinsRESTAPI提供了APItoken,使得可以在程序中使用APItoken进行认证(而不是使用你真实的密码)。APItoken可以在用户个人设置界面查看到用户→用户id→设置页面,在APIToken区域点击ShowAPItoken按钮,便可查看APItoken,同时还可以更改APItoken相应的URL是

GoJS API学习

varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod

Android防止按钮快速重复点击 - HelloWorld