解决Button连续点击造成多次事件

测试给提了一个bug,登录按钮连续点击两次会发生登录成功又退出到登录页,后来发现所负责模块的点击事件都会发生这种情况——连续点击产生多次事件
究其原因,是因为按钮添加了点击效果,造成了响应的延迟。
想过让它被一次点击之后置为不可点击状态,可是一想就登录按钮来说“如果断网怎么办”等诸多逻辑判断可能会造成较多量代码。本着尽可能少写代码的原则,那么解决方法就是在点击效果发生的时间段之内不让它再被点击,可以把时间设为1秒或者其他的时间。
代码如下:

public abstract class NoMoreOnClickListener implements View.OnClickListener {

    public static final int MIN_CLICK_DELAY_TIME = 1000;
    private long lastClickTime = 0;

    @Override
    public void onClick(View v) {
        long currentTime = Calendar.getInstance().getTimeInMillis();
        if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) {
            lastClickTime = currentTime;
            onNoMoreClick(v);
        }
    }
    public abstract void onNoMoreClick(View v);
}

代码比较简单,用法如下:

private View.OnClickListener mOnClickListener = new NoMoreOnClickListener() {
    @Override
    public void onNoMoreClick(View v) {
        //TODO: 
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,156评论 25 709
  • 你的数学直觉怎么样?你能凭借直觉,迅速地判断出谁的概率大,谁的概率小吗?下面就是 26 个这样的问题。如果你感兴趣...
    cnnjzc阅读 12,057评论 0 12
  • 推销秘诀 中午上班后,办公室几个同事正闲聊,这时进来一个漂亮姑娘,看了看我们,突然来到我面前单膝下跪,抱着我的腿...
    鲁冰魂阅读 2,682评论 0 0
  • 给我一段老时光 给我一段老时光,在那轮回的小巷 檐牙如许,雨珠时堕 撑着油纸伞的粉衣裳的姑娘, 闲闲走过。 给我一...
    意意宁宁阅读 3,085评论 0 0

友情链接更多精彩内容