有没有办法在android编辑文本中创建新的输入类型?

时间:2019-05-09 17:06:04

标签: android input types android-edittext

我想知道是否可以创建自己的输入类型,该类型将在您的编辑文本中使用。 例如,我想强迫用户只输入1到5之间的数字,因此输入类型“ number”与我想要的不匹配,我想创建一个新的输入类型,即“ number_1_5”并且只允许用户添加1到5之间的数字。

我在android文档和网络上进行了搜索,但什么都没找到:(

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

InputFilter中用于此目的:

 InputFilter filter= new InputFilter() {

    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { 
        for (int i = start; i < end; i++) { 
            String checkMe = String.valueOf(source.charAt(i));

            Pattern pattern = Pattern.compile("[12345]*");
            Matcher matcher = pattern.matcher(checkMe);
            boolean valid = matcher.matches();
            if(!valid){
                Log.d("", "invalid");
                return "";
            }
        } 
        return null; 
    } 
};

mEditText.setFilters(new InputFilter[]{filter});