美文网首页
解决Button连续点击造成多次事件

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

作者: 王凯岩_KY2 | 来源:发表于2017-02-13 10:50 被阅读0次

测试给提了一个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: 
    }
};

相关文章

网友评论

      本文标题:解决Button连续点击造成多次事件

      本文链接:https://www.haomeiwen.com/subject/bcmzittx.html