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

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

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