安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字

本文主要是介绍安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

哈哈,今天来写两种button在安卓开发实战的对应效果处理,也是对button的点击事件触发过程的处理。
开发实战中button事件处理3种情况:

  • 情况一:button点击触发倒计时
  • 情况二:button频繁点击(特别是触发网络请求),本人公司是金融公司很容易产生两笔交易的情况
  • 情况三:button点击时不断轮流切换文字

看效果:
这里写图片描述

情况一:button触发倒计时

请移步我的:频繁点击
安卓CountDownTimer实现全民夺宝抢购倒计时和短信验证码倒计时

情况二:

用户非常快的双击按钮 按钮事件相当于二次
怎么控制一个Button俩次点击的时间大于2s

  • 每次点击事件执行之前 先判断俩次点击间隔是否大于2000毫秒
package com.losileeya.buttonclick;import android.view.View;/*** User: Losileeya (847457332@qq.com)* Date: 2016-05-21* Time: 20:22* 类描述:** @version :*/
public abstract class OnClickEvent implements View.OnClickListener {private static long lastTime;public abstract void singleClick(View v);private long delay;public OnClickEvent(long delay) {this.delay = delay;}@Overridepublic void onClick(View v) {if (onMoreClick(v)) {return;}singleClick(v);}public boolean onMoreClick(View v) {boolean flag = false;long time = System.currentTimeMillis() - lastTime;if (time < delay) {flag = true;}lastTime = System.currentTimeMillis();return flag;}
}

上面是对点击事件进行处理:
具体使用:

 singleClick.setOnClickListener(new OnClickEvent(delayTime) {@Overridepublic void singleClick(View v) {Snackbar.make(v,"防止重复点击额",Snackbar.LENGTH_SHORT).show();}});

情况三:点击button来回切换文字

上述的情况比如淘宝的购物车里面就有出现,我这里也是以
*完成/编辑
来回切换的。

package com.losileeya.buttonclick;import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;import butterknife.BindView;
import butterknife.ButterKnife;public class MainActivity extends AppCompatActivity {@BindView(R.id.single_click)Button singleClick;@BindView(R.id.change_click)Button changeClick;//通过标志来动态显示文字private int flag=0;//延迟时间private  int delayTime=2000;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind(this);doEvent();}private void doEvent() {singleClick.setOnClickListener(new OnClickEvent(delayTime) {@Overridepublic void singleClick(View v) {Snackbar.make(v,"防止重复点击额",Snackbar.LENGTH_SHORT).show();}});changeClick.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {flag = (flag + 1) % 2;//点击然后改变flag的值changeClick.setText(flag >0?"编辑":"完成");}});}
}

其实代码很简单没有什么好写的,就是提供下思路。

这篇关于安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131737

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

如何在Java Spring实现异步执行(详细篇)

《如何在JavaSpring实现异步执行(详细篇)》Spring框架通过@Async、Executor等实现异步执行,提升系统性能与响应速度,支持自定义线程池管理并发,本文给大家介绍如何在Sprin... 目录前言1. 使用 @Async 实现异步执行1.1 启用异步执行支持1.2 创建异步方法1.3 调用

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三