Страница 1 из 1

Ввод только букв в EditText

Добавлено: 08 июн 2014, 00:18
Onregs
Здравствуйте, мне нужно вводить в EditText только буквы (т.е. отсетить цифры и спец символы), есть ли готовый такой фильтр к android:inputType или нужно самому в коде это реализовывать?

Re: Ввод только букв в EditText

Добавлено: 08 июн 2014, 09:53
samodelkin
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

Добавлено: 08 июн 2014, 10:22
altwin
В таких случаях всегда лучше использовать regexp( /^[a-zA-Z]+$/), если не умеете их готовить, готовые выражения в категории strings можно посмотреть к примеру тут - http://regexlib.com/DisplayPatterns.asp ... tegoryId=4 ну или попроще:
https://github.com/vekexasia/android-edittext-validator

Re: Ввод только букв в EditText

Добавлено: 08 июн 2014, 11:24
Donart
Уже писал недавно на форуме.
[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

Добавлено: 08 июн 2014, 11:53
altwin
на самом деле в 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