Переопределить setOnKeyListener для всех EditTexts в моем приложении для Android? - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь игнорировать ввод с любой подключенной физической / аппаратной клавиатуры, но разрешаю ввод с программной клавиатуры.

Используя пример из этого ответа Я могу выполнить то, что мне нужно, но я должен найти и добавить это переопределение для каждого EditText, который я поместил в свой проект.

Мне было интересно, можно ли переопределить метод setOnKeyListener для всех EditTexts в деятельности или всего приложения?

1 Ответ

0 голосов
/ 02 мая 2018

Создайте глобальную переменную, которая будет содержать ваш слушатель

View.OnKeyListener keyListener = new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            return false;
        }
    };

Тогда просто установите его на все ваши editText

editText1.setOnKeyListener(keyListener);
editText2.setOnKeyListener(keyListener);

Надеюсь, это поможет

EDIT:

Вы также можете использовать инжектор. ButterKnife например

@BindViews({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews;

С помощью этой библиотеки вам не нужно делать findViewById(), и самое лучшее, что вы можете достичь желаемых целей всего за 1 строку

nameViews.setOnKeyListener(keyListener);

Приведенный выше код установит для keyListener значение 3 EditText

...