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

相关文章

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言