安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
来源:互联网 发布:淘宝一键铺货软件 编辑:程序博客网 时间:2024/04/30 20:40
哈哈,今天来写两种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; } @Override public 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) { @Override public 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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); doEvent(); } private void doEvent() { singleClick.setOnClickListener(new OnClickEvent(delayTime) { @Override public void singleClick(View v) { Snackbar.make(v,"防止重复点击额",Snackbar.LENGTH_SHORT).show(); } }); changeClick.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { flag = (flag + 1) % 2;//点击然后改变flag的值 changeClick.setText(flag >0?"编辑":"完成"); } }); }}
其实代码很简单没有什么好写的,就是提供下思路。
2 1
- 安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
- 安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
- 安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
- android 防止Button的频繁点击,多次执行点击事件
- 防止Button的频繁点击
- android 防止Button连续点击而响应多次点击事件
- 安卓多次点击事件
- android Button防止多次点击
- 常用防止事件频繁点击的方法
- js Button点击事件时避免点击频繁的方法
- Button取消多次点击事件
- 防止快速连续点击button多次执行相同操作
- Android 防止多次点击事件
- android中防止多次点击
- Android 防止button多次点击总结
- [IOS 开发] 防止button被点击多次
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 编码规范-注释管理
- 【Leetcode】Construct Binary Tree from Preorder and Inorder Traversal
- C++的初始化列表(Initilization List)
- caffe学习笔记(8):Net Surgery
- 【Leetcode】Construct Binary Tree from Inorder and Postorder Traversal
- 安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
- zoj3203题解
- UVA 11882Biggest Number
- JSTL常用标签的使用
- vs2010中文旗舰版,vs2013,vs2015企业版激活秘钥
- 【Leetcode】Edit Distance
- Linux下tomcat初级
- web前端性能优化总结
- Maven入门