限制Android中EditText
的文本长度的最佳方法是什么?
有没有办法通过xml做到这一点?
Xml
android:maxLength="10"
。(此处最多10个字符)[Java
使用输入过滤器限制文本视图的最大长度。
TextView editEntryView = new TextView(...);
InputFilter[] filterArray = new InputFilter[1];
filterArray[0] = new InputFilter.LengthFilter(8);
editEntryView.setFilters(filterArray);
EditText editText = new EditText(this);
int maxLength = 3;
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLength)});
给已经在使用自定义输入过滤器并且想限制最大长度的人的说明:在代码中分配输入过滤器后,所有先前设置的输入过滤器均被清除,包括android:maxLength
中的一组设置。在尝试使用自定义输入过滤器以防止使用某些密码字段中不允许的字符时,我发现了这一点。使用setFilters设置该过滤器后,不再观察到maxLength。解决方案是通过编程将maxLength和我的自定义过滤器一起设置。像这样的东西:
myEditText.setFilters(new InputFilter[] {
new PasswordCharFilter(), new InputFilter.LengthFilter(20)
});
TextView tv = new TextView(this);
tv.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(250) });
EditText
类EditTextNumeric
。//Set Length filter. Restricting to 10 characters only
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(MAX_LENGTH)});
//Allowing only upper case characters
editText.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
//Attaching multiple filters
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(MAX_LENGTH), new InputFilter.AllCaps()});