美文网首页
Android之有效防止按钮多次重复点击的方法

Android之有效防止按钮多次重复点击的方法

作者: 大叔不秃 | 来源:发表于2019-11-25 11:00 被阅读0次

    最近开发完项目,测试妹子告诉我频繁点击某个按钮,导致程序在短时间内进行多次数据提交或者数据处理,好*疼的一个问题啊。。。你没事点击那么多次干嘛,,,发牢骚归发牢骚,问题环视要解决滴,不然会让妹纸看不起哥们·····

    那么如何有效避免这种情况的发生呢?

    我的想法是,判断用户点击按钮间隔时间,如果间隔时间太短,则认为是无效操作,否则进行相关业务处理

    首先将这块提取为工具类(方便接下来的调用),现在就起名为:OnClickUtils

    
    /**
     * 防止按钮多次重复点击
     */
    
    public class OnClickUtils {
    
        private static long lastClickTime = 0;
        private static long DIFF = 1000;
        private static int lastButtonId = -1;
    
        /**
         * 判断两次点击的间隔,如果小于1000,则认为是多次无效点击
         *
         * @return
         */
        public static boolean isFastDoubleClick() {
            return isFastDoubleClick(-1, DIFF);
        }
    
        /**
         * 判断两次点击的间隔,如果小于1000,则认为是多次无效点击
         *
         * @return
         */
        public static boolean isFastDoubleClick(int buttonId) {
            return isFastDoubleClick(buttonId, DIFF);
        }
    
        /**
         * 判断两次点击的间隔,如果小于diff,则认为是多次无效点击
         *
         * @param diff
         * @return
         */
        public static boolean isFastDoubleClick(int buttonId, long diff) {
            long time = System.currentTimeMillis();
            long timeD = time - lastClickTime;
            if (lastButtonId == buttonId && lastClickTime > 0 && timeD < diff) {
                Log.v("isFastDoubleClick", "短时间内按钮多次触发");
                return true;
            }
            lastClickTime = time;
            lastButtonId = buttonId;
            return false;
        }
    }
    
    

    Java文件中使用方式

       case R.id.tv_withdrawal:
                    if (!OnClickUtils.isFastDoubleClick(R.id.tv_withdrawal)){//点击事件判断
                        String i = mTvMoney.getText().toString().trim();
                        startActivity(new Intent(getActivity(), WithdrawalActivity.class).putExtra("Money", Money));
                    }
                    
                    break;
                case R.id.bt_balance://充值
                    if (!OnClickUtils.isFastDoubleClick(R.id.bt_balance)){
                        startActivity(new Intent(getActivity(), TopUp.class));
                    }
    

    相关文章

      网友评论

          本文标题:Android之有效防止按钮多次重复点击的方法

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