Я пытаюсь определить набор кнопок, которые позволяют пользователю вводить данные в поле 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 и т. Д.)
Любые идеи по этому поводу очень ценятся!