安卓实战中防止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

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模