У меня есть простой редактор, который я добавил в свой макет. Я добавил простой OnKeyListener следующим образом в методе onCreate:
final EditText simpleEditText = (EditText) findViewById(R.id.editText1);
simpleEditText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
System.out.println("HELLO");
return false;
}
});
Когда приложение запускается, все работает правильно. Для каждой нажатой клавиши HELLO печатается дважды - один раз для действия DOWN и один раз для UP-действия.
Теперь, когда я нажимаю на edittext с помощью мыши, edittext больше не запускает код в моем методе onKey. Что я делаю не так? Я все равно хочу получать ключевые события после того, как пользователь нажал на edittext. Я не забочусь о щелчке мыши, я использую это только для перемещения курсора. После перемещения курсора ключевые события больше не регистрируются.
Для получения дополнительной информации см. Прикрепленное изображение.
Спасибо Замилю
Согласно API андроида, onKey работает только для физического нажатия клавиши. Возможно, вам придется рассмотреть OnClickListener для щелчков мыши. Вот документация по API.
События Click не являются ключевыми событиями. Вы не будете (и не должны) получать onKey-события ни для чего, кроме ключевых событий.