Android 監(jiān)聽EditText 輸入完成


       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;
        }
    }
}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容