Подавить появление программной клавиатуры на фокусе EditText - PullRequest
1 голос
/ 21 марта 2011

Я пытаюсь определить набор кнопок, которые позволяют пользователю вводить данные в поле EditText. Я хочу, чтобы все функциональные возможности по умолчанию для окна EditText, кроме всплывающего окна программной клавиатуры единственные данные, которые можно вводить в поле EditText, должны быть данными из определенных мной кнопок. Я пытаюсь подавить программную клавиатуру, перехватывая сенсорное событие и возвращая true. (согласно разговору найдено в этой теме )

private OnTouchListener txtTouchListener = new OnTouchListener()
    {
    @Override
    public boolean onTouch(View v, MotionEvent event)
        {
        //Return true to suppress the passing of the event on to the OS
        return true;
        }
    };

Проблема в том, что этот метод блокирует событие длинного щелчка от запуска. Чтобы решить эту проблему, я могу вернуть false и затем обработать событие длинного щелчка. Тем не менее, после этого короткий щелчок вызывает экранную клавиатуру. Кроме того, при длительном щелчке не только программная клавиатура отключается, но и контекстное меню. Я ищу способ предотвратить появление клавиатуры при коротком (или длинном) щелчке, но сохранить все остальные функции (обновление позиции курсора при коротком щелчке, при длинном щелчке показать контекстное меню EditText и т. Д.)

Любые идеи по этому поводу очень ценятся!

1 Ответ

5 голосов
/ 21 марта 2011

Этот поток предлагает:

EditText.setInputType(InputType.TYPE_NULL);

Или вы установите inputType в атрибуте XML на none.

Хотя сам не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...