登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

Android防止按钮重复点击

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-7-26 12:22:27
Tag:Android 适应性
立即下载
收藏

项目介绍:

防止按钮重复点击一种简单、适应性广的方案
演示效果

上图中用到的代码:

Button 1,使用默认的延时参数来防止按钮重复点击,在点击后设置按钮不可用持续 300 毫秒,300 毫秒后,重新设置按钮可用,继续接收点击事件

[Java] 查看源文件 复制代码
DebounceClick.onClick(findViewById(R.id.button1), new View.OnClickListener() {
    @Override public void onClick(View v) {
        text.append(String.format("Button 1 被点击 => %s\n", System.currentTimeMillis()));
        if (mEvent != null) {
            mEvent.done(); // 恢复 Button 3 状态
        }
    }
});

Button 2,使用自定义的时间延时来决定多少毫秒内部接收重复的点击事件,用法和上面相同

[Java] 查看源文件 复制代码
DebounceClick.onClick(findViewById(R.id.button2), 2000, new View.OnClickListener() {
    @Override public void onClick(View v) {
        text.append(String.format("Button 2 被点击 => %s\n", System.currentTimeMillis()));
        if (mEvent != null) {
            mEvent.done(); // 恢复 Button 3 状态
        }
    }
});

Button 3,自定义逻辑下眼决定按钮什么时候恢复。设定点击事件的通知会额外回调一个 Event 标记对象。在自己的逻辑完成后(例如,网络返回了结果或者出错了),调用 event.done() 来恢复按钮的状态

[Java] 查看源文件 复制代码
DebounceClick.onClick(findViewById(R.id.button3), new Callback() {
    @Override public void call(View view, ClickEvent event) {
        text.append(String.format("Button 3 被点击 => %s\n", System.currentTimeMillis()));
        mEvent = event;
    }
});

感谢

感谢 RxDebounceClick 提供的使用场景,这里测试用例和取名都参考了它


相关源码推荐:

我来说两句
所有评论(63)
孙林 2016-7-26 12:53:02
强烈支持楼主ing……
回复
Mr_Zhao 2016-7-26 13:07:36
不错不错,楼主辛苦了。。。
回复
einnius2012 2016-7-26 14:09:27
帮帮顶顶!!
回复
myself2015 2016-7-26 14:40:58
学习...学习...
回复
IT新菜鸟 2016-7-26 15:16:13
很给力,安卓巴士有你更精彩!
回复
1135630450 2016-7-26 15:23:20
很给力,安卓巴士有你更精彩!
回复
w00214777 2016-7-26 15:38:58
帮帮顶顶!!
回复
上传代码
查看数:4138 收藏数:27 下载数:46 点赞数:2
状态:已购或VIP 售价:10(原价:10)金钱 下载权限:初级码农 
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表