Ввод только букв в EditText
Ввод только букв в EditText
Здравствуйте, мне нужно вводить в EditText только буквы (т.е. отсетить цифры и спец символы), есть ли готовый такой фильтр к android:inputType или нужно самому в коде это реализовывать?
-
- Сообщения: 52
- Зарегистрирован: 27 ноя 2013, 15:23
Re: Ввод только букв в EditText
Так как текст- это буквы, цифры и символы, то разрешить ввод только букв не получится, можно лишь после ввода заменить все цифры на какой либо символ или удалить все цифры, вот функция для удаления цифр, написанная мной специально для вас:Onregs писал(а):Здравствуйте, мне нужно вводить в EditText только буквы (т.е. отсетить цифры и спец символы), есть ли готовый такой фильтр к android:inputType или нужно самому в коде это реализовывать?
Код: Выделить всё
public String deleteNumbers(String text){
String tmpString=text;
Char[] numbers={'0','1','2','3','4','5','6','7','8','9'};
for(int n=0;n<numbers.length;n++) tmpString=tmpString.replace(numbers[n],'');
return tmpString;
}
Re: Ввод только букв в EditText
В таких случаях всегда лучше использовать regexp( /^[a-zA-Z]+$/), если не умеете их готовить, готовые выражения в категории strings можно посмотреть к примеру тут - http://regexlib.com/DisplayPatterns.asp ... tegoryId=4 ну или попроще:
https://github.com/vekexasia/android-edittext-validator
https://github.com/vekexasia/android-edittext-validator
Re: Ввод только букв в EditText
Уже писал недавно на форуме.
[syntax=java5]InputFilter inpf = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
String text = dest.subSequence(0, dstart).toString() +
source.subSequence(start, end) + dest.subSequence(dend,dest.length()).toString();
String pattern = "[а-яА-ЯёЁa-zA-Z]+";
if (!Pattern.matches(pattern, text)) {
return "";
}
return null;
}
};
et.setFilters(new InputFilter[] { inpf }); //это вешается на Ваш EditText[/syntax]
[syntax=java5]InputFilter inpf = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
String text = dest.subSequence(0, dstart).toString() +
source.subSequence(start, end) + dest.subSequence(dend,dest.length()).toString();
String pattern = "[а-яА-ЯёЁa-zA-Z]+";
if (!Pattern.matches(pattern, text)) {
return "";
}
return null;
}
};
et.setFilters(new InputFilter[] { inpf }); //это вешается на Ваш EditText[/syntax]
Re: Ввод только букв в EditText
на самом деле в android-edittext-validator уже все давно "валидированно" и в том числе можно к примеру сделать валидацию по патерну используя такой класс - https://github.com/vekexasia/android-ed ... r.java#L17 либо же класический regexp https://github.com/vekexasia/android-ed ... r.java#L10
Ну а в данном случае я думаю достаточно использовать - https://github.com/vekexasia/android-ed ... or.java#L3
Ну а в данном случае я думаю достаточно использовать - https://github.com/vekexasia/android-ed ... or.java#L3