如何限制android编辑文本只接受字母和长度

时间:2014-02-20 12:39:06

标签: android android-edittext

我有一个编辑文字。我已经设置了属性android:maxLength =“35”来限制长度。它工作正常。但是当我使用下面的代码限制编辑文本只接受字母表时,我可以输入超过35个字符。

etLastName.setFilters(new InputFilter[] {
                new InputFilter() {
                    public CharSequence filter(CharSequence src, int start,
                            int end, Spanned dst, int dstart, int dend) {
                        if(src.equals("")){ // for backspace
                            return src;
                        }
                        if(src.toString().matches("[a-zA-Z ]+")){
                            return src;
                        }
                        return "";
                    }
                }
            });

请帮助我如何在编辑文本中应用这两个条件。

3 个答案:

答案 0 :(得分:1)

你可以试试android:digits属性并在XML中指定你有效的字符。而对于限制长度,请使用android:maxLength属性,就像其他人所说的那样。

像,

 android:digits="ABCDEFGH..."
 android:maxLength=35;

然而,对于EditText的复杂限制和验证,InputFilter更合适。所以你已经做得很好。 :)

我正在搜索InputFilter,我找到了你想要的东西,

InputFilter.LengthFilter(int max); //sets the maxlength

快乐编码。 :)

答案 1 :(得分:0)

尝试以下代码。

etLastName.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);

并将android:maxLength="35"设置为xml文件中的edittext属性。

答案 2 :(得分:0)

尝试将此属性添加到布局文件中的EditText:

android:maxLength="35"