美文网首页android 技术知识
Android 监听EditText 输入完成

Android 监听EditText 输入完成

作者: 追梦小乐 | 来源:发表于2020-10-22 12:17 被阅读0次
    
           etMinAmout.addTextChangedListener(new TextWatcher() {
    
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    inputIndex = MIN_AMOUT_INPUT;
                    mHandler.removeCallbacks(mRunnable);
                    //800毫秒没有输入认为输入完毕
                    mHandler.postDelayed(mRunnable, 1000);
                    minAmoutInput = s.toString();
                }
    
                @Override
                public void afterTextChanged(Editable s) {
    
                }
            });
    
    
            etMaxAmout.addTextChangedListener(new TextWatcher() {
    
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    inputIndex = MAX_AMOUT_INPUT;
                    mHandler.removeCallbacks(mRunnable);
                    //800毫秒没有输入认为输入完毕
                    mHandler.postDelayed(mRunnable, 1000);
                    maxAmoutInput = s.toString();
                }
    
                @Override
                public void afterTextChanged(Editable s) {
                }
            });
    
    
        //输入完成标志
        private static final int MIN_AMOUT_EDIT_OK = 1000;
        private static final int MAX_AMOUT_EDIT_OK = 1001;
        //输入标志
        private static final int MIN_AMOUT_INPUT = 1;
        private static final int MAX_AMOUT_INPUT = 2;
    
        private Handler mHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                if (MIN_AMOUT_EDIT_OK == msg.what) {
                    String minAmout = minAmoutInput;
                    MbsLogManager.logD("tMinAmout=====afterTextChanged========" + minAmout);
                    if (NotNull.isNotNull(minAmout)){
                        String maxAmout = etMaxAmout.getText().toString();
                        if (NotNull.isNotNull(getAvailableMinAmout()) && Double.parseDouble(minAmout) < Double.parseDouble(getAvailableMinAmout())){
                          
                        }else if (NotNull.isNotNull(maxAmout) && (Double.parseDouble(minAmout) > Double.parseDouble(maxAmout))){
                           
                        }
                    }
                }else if (MAX_AMOUT_EDIT_OK == msg.what){
                    String maxAmout = maxAmoutInput;
                    if (NotNull.isNotNull(maxAmout)){
                        String minAmout = etMinAmout.getText().toString().trim();
                        if (NotNull.isNotNull(getAvailableMaxAmout()) && Double.parseDouble(maxAmout) > Double.parseDouble( getAvailableMaxAmout())){
                           
                        }else if (NotNull.isNotNull(minAmout) && (Double.parseDouble(minAmout) > Double.parseDouble(maxAmout))){
                           
                        }
                    }
                }
    
            }
        };
    
        private Runnable mRunnable = new Runnable() {
            @Override
            public void run() {
                switch (inputIndex){
                    case MIN_AMOUT_INPUT:
                        mHandler.sendEmptyMessage(MIN_AMOUT_EDIT_OK);
                        break;
                    case MAX_AMOUT_INPUT:
                        mHandler.sendEmptyMessage(MAX_AMOUT_EDIT_OK);
                        break;
                }
            }
        };
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            if (mHandler != null){
                mHandler.removeCallbacksAndMessages(null);
                mHandler = null;
            }
        }
    }
    
    
    

    相关文章

      网友评论

        本文标题:Android 监听EditText 输入完成

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