Мягкая клавиатура без EditText и обнаружение нажатий клавиш - PullRequest
8 голосов
/ 23 ноября 2010

Как я могу надежно определять нажатия клавиш с помощью жесткой или программной клавиатуры?

Мое приложение удаленно управляет другим устройством по Wi-Fi, и мне нужно обнаруживать каждое нажатие клавиши на программной или жесткой клавиатуре.Мне на самом деле не нужен EditText, потому что мне просто нужно посылать символы по одному, когда они нажаты, и мне не нужна конечная текстовая строка.

Я пытался использовать EditText с OnKeyPress, ностолкнулся с проблемами здесь из-за невозможности нажатия клавиш с помощью мягких клавиатур.И TextWatcher не очень хороший вариант, потому что мне нужно каждое нажатие клавиши.

Я буду использовать EditText, если придется, но предпочитаю, что нет.Что я действительно хочу, так это:

  • Поднимите экранную клавиатуру, когда пользователь нажимает кнопку поиска
  • Пользователь нажимает клавиши, и я передаю коды на удаленное устройство.На самом деле не нужно ничего видеть на экране в EditText, поскольку это будет отображаться на удаленном устройстве
  • Пользователь нажимает пользовательскую кнопку Готово на программной клавиатуре, чтобы закрыть его

Есть предложения?

1 Ответ

1 голос
/ 23 ноября 2010

Ну, вы можете переопределить [onKeyDown(int keyCode, KeyEvent event)] [1] и (или) [onKeyUp(int keyCode, KeyEvent event)] [2] методы в классе активности приложений, это позволит вам получать уведомления даже о таких ключах, как клавиша возврата и другие аппаратные ключи ...

Примечание: вы можете получать уведомления о движении трекбола и так далее ...

[1]: http://developer.android.com/reference/android/view/View.html#onKeyDown(int, android.view.KeyEvent) [2]: http://developer.android.com/reference/android/view/View.html#onKeyUp(int, android.view.KeyEvent)

...