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

2017-02-13  本文已影响0人  王凯岩_KY2

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

猜你喜欢

热点阅读