6

EditText フィールドを使用せずにハードウェア キーボード イベントをキャプチャするにはどうすればよいですか?

たとえば、単純なアクティビティでは、画面に四角形を表示し、スライド キーボードで「B」を押すと青色に、「G」を押すと緑色にします。

キープレスを傍受する方法だけで、カラーコードの助けは必要ありません

これは、ソフトまたは仮想キーボードに関するものではありません

4

2 に答える 2

6

通常、Android クラスにはイベント ハンドラーが用意されており、それらをサブクラス化するときに実装できます。このActivityクラスには、次のイベント ハンドラーがあります。

  • onKeyDown(int keyCode, KeyEvent event)
  • onKeyLongPress(int keyCode, KeyEvent event)
  • onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
  • onKeyShortcut(int keyCode, KeyEvent event)
  • onKeyUp(int keyCode, KeyEvent event)

さらに、すべてのビューには次のイベント ハンドラーがあります。

  • onKeyDown(int, KeyEvent)
  • onKeyUp(int, KeyEvent)

キーイベント用の同様のイベントハンドラーを持つクラスは他にもたくさんあると思いますが、これで十分です。次に、KeyEventには、押されたキーに関する情報、つまりキー コードが含まれます。

于 2011-03-14T09:03:06.237 に答える
1

Activity クラスはすでに KeyEvent.CallBack を実装していますここを参照してください

これらのメソッドをオーバーライドして、必要なすべてのイベントを実装するだけです

于 2011-03-14T09:03:27.703 に答える