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

Интерфейс, диалоги, темы, стили, меню
Ответить
Onregs
Сообщения: 5
Зарегистрирован: 26 май 2014, 20:48

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

Сообщение Onregs » 08 июн 2014, 00:18

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

samodelkin
Сообщения: 52
Зарегистрирован: 27 ноя 2013, 15:23

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

Сообщение samodelkin » 08 июн 2014, 09:53

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;
}

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 08 июн 2014, 10:22

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

Donart
Сообщения: 114
Зарегистрирован: 06 ноя 2013, 08:59

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

Сообщение Donart » 08 июн 2014, 11:24

Уже писал недавно на форуме.
[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]

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

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

Сообщение altwin » 08 июн 2014, 11:53

на самом деле в 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
Изображение

Ответить