Android开发:更优雅的处理按钮重复点击事件

Android中如何优雅的处理重复点击实例代码 问题 有时候有些操作是防止用户在一次响应结束中再响应下一个。但有些测试用户就要猛点,狂点。像这种恶意就要进行防止。 比如在客户端中,一些按钮一般是需要避免重复点击的,比如:购买丶支付丶确定丶提交丶点赞丶收藏等等场景,这些场景短时间内的重复点击会引发一些问题. 下面话不多说了,来一起看看详细的介绍吧 以前的处理方式 可能是采用手动记录最后的点击时间,再通过计算时间间隔来判断是否重复点击 private long mLastClickTime = 0; public static final int TIME_INTERVAL = 1000; private Button mButto 立即下载

关于按钮重复点击的处理,网上有很多例子。这篇文章,我记录一下,我在平时项目中使用的处理方式,更多的处理方式可以查看任玉刚或者郭霖的博客。

一、方法封装:

 /**
     * 保证同一按钮在1秒内只响应一次点击事件
     */
    public abstract class OnSingleClickListener implements View.OnClickListener {
        //两次点击按钮的最小间隔,目前为1000
        private static final int MIN_CLICK_DELAY_TIME = 1000;
        private long lastClickTime;

        public abstract void onSingleClick(View view);

        @Override
        public void onClick(View v) {
            long curClickTime = System.currentTimeMillis();
            if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
                lastClickTime = curClickTime;
                onSingleClick(v);
            }
        }
    }

    /**
     * 同一按钮在短时间内可重复响应点击事件
     */
    public abstract class OnMultiClickListener implements View.OnClickListener {
        public abstract void onMultiClick(View view);

        @Override
        public void onClick(View v) {
            onMultiClick(v);
        }
    }

二、具体使用

 

开发者根据自己的需求,选择实现的点击事件:OnSingleClickListener 、OnMultiClickListener

   btnNext.setOnClickListener(new OnSingleClickListener() {
            @Override
            public void onSingleClick(View view) {
                // TODO: 2019/7/11  做逻辑处理
            }
        });
        btnBefore.setOnClickListener(new OnMultiClickListener() {
            @Override
            public void onMultiClick(View view) {
                // TODO: 2019/7/11  做逻辑处理
            }
        });

 

 

 

Android优雅地处理按钮重复点击的几种方法 App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题。 因此,防止按钮多次点击,是Android开发中一个很重要的技术手段。 以前的处理方式 网上查找到的,或者你可能会想到的方法大概有这些: 1.每个按钮点击事件中,记录点击时间,判断是否超过点击时间间隔 private long mLastClickTime = 0; public static final long TIME_INTERVAL = 1000L; private Button btTest; private void initView() 立即下载

相关推荐

头歌操作系统 课堂练习4.2:页式内存管理 答案 无解析

头歌操作系统 课堂练习4.2:页式内存管理 答案 无解析

kercii的博客 1万+

android按钮防止重复点击事件,Android开发:更优雅的处理按钮重复点击事件

关于按钮重复点击的处理,网上有很多例子。这篇文章,我记录一下,我在平时项目中使用的处理方式,更多的处理方式可以查看任玉刚或者郭霖的博客。一、方法封装:/*** 保证同一按钮在1秒内只响应一次点击事件*/public abstract class OnSingleClickListener implements View.OnClickListener {//两次点击按钮的最小间隔,目前为1000p...

weixin_30946627的博客 453

Pspice开关电源仿真:从零实现反激式电源设计实战案例

通过Pspice仿真工具,手把手实现反激式开关电源的设计与优化,深入剖析关键参数设置与波形分析,帮助掌握Pspice在电源开发中的实际应用技巧。

weixin_35756690的博客 1155

Android-如何优雅的处理重复点击

转自:https://www.jianshu.com/p/d98e22c127ed? 问题 在客户端中,一些按钮一般是需要避免重复点击的,比如:购买丶支付丶确定丶提交丶点赞丶收藏等等场景,这些场景短时间内的重复点击会引发一些问题. 以前的处理方式 可能是采用手动记录最后的点击时间,再通过计算时间间隔来判断是否重复点击 long mLastClickTime = 0; long...

u013359807的博客 775

AI Agent + 大数据 + RAG:电商用户行为分析的低成本落地

本文探讨了AIAgent与大数据技术在电商用户行为分析中的应用。通过构建"数据采集-实时分析-智能决策"的全自治链路,解决了传统大数据分析的三大痛点:人工建模周期长、实时性不足和决策闭环断裂。系统采用Flink+Spark处理实时数据,结合基于DeepSeek-V3.1的AIAgent实现智能分析,并通过飞书RAG模块动态获取业务知识。落地效果显示,分析响应时间从2-3天缩短至30秒,推荐转化率提升134%,验证了该方案在提升电商数据决策效率方面的显著价值。

想~ai抽 1620

IMA知识库:从0到1的架构设计与实践

本文探讨了AI时代知识库系统的架构设计与演进路径。通过分析知识入库、知识管理和知识应用三大核心业务流程,提出了应对数据多样性、处理标准化、流量洪峰等挑战的解决方案。重点介绍了基于统一数据格式的解耦设计、异步处理架构、服务拆分策略以及权限安全体系,构建了一个稳定、高效且可扩展的知识库系统。文章强调优秀架构需要持续演进,通过识别薄弱点不断优化,最终实现技术方案与业务需求的平衡。

lovehu6686的博客 1737

Android优雅地处理按钮重复点击

Android优雅地处理按钮重复点击

大漠孤烟的博客 595

告别手动解析!用这个Qt库轻松处理Cat 21/62等18种Asterix航空数据

本文介绍了基于Qt框架的高效Asterix报文解析库,帮助开发者轻松处理Cat 21/62等18种航空数据。该库通过协议抽象化、多维度API设计和跨平台支持,解决了手动解析的复杂性和易错问题,显著提升开发效率和系统可靠性。

weixin_42529366的博客 207

android 多个onclicklistener,Android响应onClick方法的五种实现方式

在Android的开发中,对于点击事件的OnClickListener有下面四种实现方式,可以根据实际场景的需要选择合适的用法。下面以Button按钮来举例说明。方法一:适合场景:任何场景都通用,但对于一个Activity中要是有多个控件要实现onClick方法就会显得代码冗余。Button bt_Demo = (Button)findViewById(R.id.bt_Demo);bt_Demo....

weixin_29094301的博客 598

Spring AI Alibaba实战训练营-16 NL2SQL (自然语言转 SQL)应用开发指南

本文介绍了一个基于AI的智能BI应用开发项目,主要实现自然语言转SQL(NL2SQL)功能,包含对话模块、MCP模块、向量数据管理模块。项目采用Spring AI Alibaba框架,集成通义千问大模型,支持内存向量库和AnalyticDB向量数据库两种存储方案。重点展示了chat模块的三个控制器实现:AnalyticNl2SqlController用于生产环境,SimpleChatController适用于开发测试,Nl2sqlForGraphController支持基于图的复杂对话流程。系统通过将业务知

program哲学 1585

MIKE水动力笔记5_建立水动力模型

前文已经讲了如何制作网格文件(.mdf文件),这一博文就讲如何建立水动力模型。

晏长街的博客 3万+

多次点击android版本,Android优雅地处理按钮重复点击

版权声明:本文已授权微信公众号:Android必修课,转载请申明出处App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题。因此,防止按钮多次点击,是Android开发中一个很重要的技术手段。以前的处理方式网上查找到的,或者你可能会想到的方法大概有这些:1.每个按钮点击事件中,记录点击时间,判断是否超过点击时间间...

weixin_30708203的博客 1907

【Matlab】matlab代码实现sph溃坝模拟

本文介绍了一个基于MATLAB的SPH溃坝模拟实现。代码使用平滑粒子流体动力学方法,通过建立1000个随机分布的粒子,计算粒子间的相互作用力来模拟流体运动。模拟过程包括初始化参数、粒子创建、密度压力更新、速度位置计算以及可视化展示。核心算法采用poly6Kernel和spikyKernelGradient函数处理粒子间作用力。该示例为二维简化模型,仅包含基本物理参数和计算流程,实际应用需进一步优化扩展。

unber的博客 206

android方法注解 点击,Android优雅地处理按钮重复点击的几种方法

App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题。因此,防止按钮多次点击,是Android开发中一个很重要的技术手段。以前的处理方式网上查找到的,或者你可能会想到的方法大概有这些:1.每个按钮点击事件中,记录点击时间,判断是否超过点击时间间隔private long mLastClickTime = 0;p...

weixin_42502060的博客 669

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AspectJ处理重复点击过快点击事件

在开发的过程中,我们常常会遇到这样的需求,当用户过快的点击按钮时,只响应一次点击事件。 通常的做法是用一个变量记录上次点击的时间,然后取当前的时间和上次的点击时间的差值,只有大于预定的时间才会响应。 以下是我的几种实现方法,包括两类,一类是普通的做法,另外一类是用AspectJ加入切面来实现,实现起来更加的优雅。 1.普通做法 1.1实现方式一 1.建立一个父类,在父类里面实现是否拦截点击事件的判...

我是黄大仙 1620

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android重复点击处理

转载自https://www.jianshu.com/p/7b354eb8d0d3 App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题。 因此,防止按钮多次点击,是Android开发中一个很重要的技术手段。 以前的处理方式 网上查找到的,或者你可能会想到的方法大概有这些: 1.每个按钮点击事件中...

小二的博客 586

Android处理按钮重复点击

转自https://www.jianshu.com/p/7b354eb8d0d3App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题。 因此,防止按钮多次点击,是Android开发中一个很重要的技术手段。 以前的处理方式 网上查找到的,或者你可能会想到的方法大概有这些: 1.每个按钮点击事件中,记录点击时间,...

weixin_33860722的博客 155

java 避免按键重复点击_一行代码实现防止按钮重复点击

本文已授权公众号「玉刚说」独家发布也许有些人会纳闷,老哥,你这么简单的功能还需要写博客吗?是游戏不好玩呢?还是妹子不好撩啊?这位兄台,你回答的真是太对了,这年头游戏太烧钱,撩妹子比改bug还难。。。。App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题。同时如果你是hmi开发,在很多时候也需要此项操作。因此,防...

weixin_39606799的博客 2470

Android 优雅处理重复点击

code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群作者:张坤的笔记链接:https://www.jianshu.com/p/04ed8d18c335声明:本文...

weixin_38754349的博客 406
上一篇: Android开发:数字转换工具封装,包含字符串是否可以转换成数字
下一篇: Android开发:安卓选择器类库,包括日期选择器、时间选择器、文件选择器、目录选择器等
android157
博客等级 码龄9年 193粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值