两种方式:

1、属性设置


按钮点击后,onClick方法 设置:button_login.setClickable(false); 点击完成后,onClick方法 设置:button_login.setClickable(true);


结论:不可取。

原因:onClick方法内部业务逻辑复杂,无法快捷设置属性。

2、时间间隔

private static long lastClickTime;

    /**
     * 重复点击
     * @param timeMillis:时间间隔,单位:毫秒
     * @return
     */
    public static boolean isFastDoubleClick(long timeMillis) {
        long time = System.currentTimeMillis();
        if ( time - lastClickTime < timeMillis) {
            return true;
        }
        lastClickTime = time;
        return false;
    }

使用法法:

View.OnClickListener buttonLoginListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (Utils.isFastDoubleClick(500))return;
            //以下业务处理。。。

        }
    };

总结:可用