Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46

EditText setFilters не работает в некоторых случаях

28.07.2017, 22:27. Показов 1889. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Нужно, чтобы пользователь мог вводить только русские буквы в editText. Я использовал editText.setFilters() и он действительно ограничивает ввод всех символов кроме русских букв. Но Если ввести слово и следом цифру (например) все слово удаляется, или если быстро нажимать пробел, то он начинает стирать по одной букве. Как это исправить?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
editText.setFilters(new InputFilter[]{
                new InputFilter() {
                    @Override
                    public CharSequence filter(CharSequence source, int start,
                                               int end, Spanned dest, int dstart, int dend) {
                        if (source.equals("")) { // for backspace
                            return source;
                        }
                        if (source.toString().matches("[а-яА-ЯёЁ]+")) {
                            return source;
                        }
                        return "";
                    }
                }
        });
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.07.2017, 22:27
Ответы с готовыми решениями:

Не работает анимация в некоторых случаях
Всем доброе время суток. Проблема в следующем: ни как не получается "оживить анимацию gif" при любом событии Mouse. Ну то есть...

Почему в некоторых случаях используется массив для хранения стека, а в некоторых нет?
Почему в некоторых случаях используется массив для хранения стека ,а в некоторых нет

Делегат в некоторых случаях должен принимать парамертр, а в некоторых не должен
Есть делегат который в некоторых случаях должен принимать парамертр, а в некоторых не должен, я пробовал присваивать параметру null по...

2
2 / 2 / 2
Регистрация: 18.07.2017
Сообщений: 46
01.08.2017, 20:45  [ТС]
Ребят нет идей?
Может есть иной красивый способ реализации?
0
 Аватар для arzrav
73 / 74 / 4
Регистрация: 25.09.2012
Сообщений: 211
03.08.2017, 17:34
Лучший ответ Сообщение было отмечено BargystVelp как решение

Решение

У меня это реализовано вот так. Все работает как часы.
Класс RegexInputFilter:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import android.text.InputFilter;
import android.text.Spanned;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
 
public class RegexInputFilter implements InputFilter {
 
    private static final String CLASS_NAME = RegexInputFilter.class.getSimpleName();
    private Pattern mPattern;
 
    public RegexInputFilter(Pattern pattern) {
        if (pattern == null) {
            throw new IllegalArgumentException(CLASS_NAME + " requires a regex.");
        }
 
        mPattern = pattern;
    }
 
    public RegexInputFilter(String pattern) {
        this(Pattern.compile(pattern));
    }
 
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        Matcher matcher = mPattern.matcher(source);
        if (!matcher.matches()) {
            return "";
        }
        return null;
    }
}
Применение в другом классе на EditText:
Java
1
2
3
4
5
RegexInputFilter nameFilter = new RegexInputFilter("[А-Яа-яёЁA-Za-z -]");
mPatientFirstName.setFilters(new InputFilter[]{
                nameFilter,
                new InputFilter.LengthFilter(50)
        });
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.08.2017, 17:34
Помогаю со студенческими работами здесь

Не округлять числа в некоторых случаях
Всем доброе время суток ! Относительно способов округления существует стандарт IEEE 754, арифметическое округлениу, бухгалтерское...

неправильная работа рекурсии в некоторых случаях
Неправильно работает рекурсия для некоторых чисел(умножение Карацубы), подскажите пожалуйста как исправить, а то я в этом деле дилетант ...

Почему pdf документы в некоторых случаях весомее ,
Не могу понять почему яндекс считает документ pdf весомее ,чем страницу специально заточенную под нужным запрос "Оптический...

Русский язык в некоторых случаях символами. Как исправить?
В некоторых случаях русский язык отображается символами, к примеру при установки какой-либо программы. Пока только при установке заметил...

Почему в php в некоторых случаях можно обойтись без кавычек?
Никогда не думал в каких случаях можно обходиться без кавычек. Но недавно наткнулся на интересный код, в котором ключ массива был без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru