Android设置Edittext只能输入数字/字母并弹出英文键盘

方案一,亲测无效!

// editText.setInputType(InputType.TYPE_CLASS_NUMBER);
 editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL);
editText.setKeyListener(DigitsKeyListener.getInstance("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"));

测试发现是显示数字键盘, 亲测不行。

方案二,亲测有效!

editText.setKeyListener(new DigitsKeyListener() {
            @Override
            public int getInputType() {
                return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL;
            }

            @NonNull
            @Override
            protected char[] getAcceptedChars() {
                return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
            }
        });

限制输入最大长度

  editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)}); //最大输入长度

你可能感兴趣的:(Android设置Edittext只能输入数字/字母并弹出英文键盘)