1. 程式人生 > 其它 >過濾限制EditText文字輸入

過濾限制EditText文字輸入

限制接收的字元

通過setKeyListener限制能接收的字元


       edt.setKeyListener(new NumberKeyListener() {
            @NonNull
            @Override
            protected char[] getAcceptedChars() {
                return new char[]{'1','2','3','4','5'};//能接收的字元陣列
            }

            @Override
            public int getInputType() {
                return InputType.TYPE_CLASS_TEXT;//返回鍵盤型別
            }
        });

過濾字元

通過InputFilter過濾輸入的字元

//下一個字元和前一個不能重複
    InputFilter inputFilter = new InputFilter(){
           private String lastStr = "";
            @Override
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                Log.d(TAG, "filter: --"+source.toString());
                if (lastStr.equals(source.toString())){
                    return "";
                }
                lastStr = source.toString();
                return null;//返回原始值
            }
        };
edt.setFilters(new InputFilter[]{inputFilter});