我有一个编辑文字。我已经设置了属性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 "";
}
}
});
请帮助我如何在编辑文本中应用这两个条件。
答案 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"