安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
2016-09-12 11:26
399 查看
情况一:
用户非常快的双击按钮 按钮事件相当于二次 怎么控制一个Button俩次点击的时间大于2s
每次点击事件执行之前 先判断俩次点击间隔是否大于2000毫秒
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来回切换文字
上述的情况比如淘宝的购物车里面就有出现,我这里也是以 *完成/编辑
来回切换的。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?"编辑":"完成");
}
});
}
}
相关文章推荐
- 安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
- 安卓实战中防止Button的频繁点击多次执行点击事件和点击切换文字
- android 防止Button的频繁点击,多次执行点击事件
- ASP.NET 多次点击button后事件执行多次 并发解决 频繁操作解决办法
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- android 防止Button连续点击而响应多次点击事件
- 防止快速连续点击button多次执行相同操作
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
- 服务器控件button点击时执行脚本弹出提示对话框Button2.Attributes.Add("onclick","事件")
- Jquery对象绑定的点击事件执行了多次的原因
- android防止button多次被点击工具类
- 点击TButton后的执行OnClick和OnMouseDown两个事件的过程(其实是通过WM_COMMAND执行程序员的代码)
- Android:防止过快点击造成多次事件
- 安卓 ListView Button、CheckBox、RadioButton 点击事件 覆盖的问题
- Android学习笔记之Button的点击事件切换点击图片
- Listview与Button点击事件冲突看安卓点击事件分发机制
- 多次点击button避免重复多次事件
- 安卓给button增加点击事件
- Android:防止过快点击造成多次事件