[android][aznyan]キーコード(主にCtrlキー)を取得してみる
Dynabook AZ(#aznyan) の Ctrlキーの何たるかを知りたい。
準備
- Activity.findViewById() でIDからビューオブジェクトとれる
- 実機でデバッグするには AndroidManifest.xml に android:debuggable=”true” を追加する
キーイベントの処理
- キーイベントをフックして、文字コードとMetaキー状況を表示してみる
// dispatchKeyEvent()を実装してフックする public boolean dispatchKeyEvent(KeyEvent e) { if (e.getAction() == KeyEvent.ACTION_UP) { // 文字コード取得は getKeyCode() Integer code = new Integer(e.getKeyCode()); // メタキーの押下状況を得るには getMetaState() Integer meta = new Integer(e.getMetaState()); // Activity.findViewById() でIDからビューオブジェクトとれる TextView t = (TextView)this.findViewById(R.id.textview); // 画面に文字コードとmeta stateを表示してみる t.setText(code.toString()+","+meta.toString()); } // 自前処理したら親にも渡す return super.dispatchKeyEvent(e); }
- #aznyan で Ctrlキーを押すと、getMetaState()が 0×8 になるようだ。SDK referenceにはないよ。
- Ctrlキー自身のキーコードは 0x5d。ないよ。
- これで emacs操作風エディタできるかもね。
参考
- ビュー毎に個別のIDを設定 – リソース管理 – Android入門
http://www.javadrive.jp/android/xml_layout/index6.html - 実機でデバッグするには – 逆引きAndroid入門
http://www.adakoda.com/android/000242.html - キーイベントに応答するには – 逆引きAndroid入門
http://www.adakoda.com/android/000325.html
関連情報
- 「android-dev」タグの付いたエントリ http://groundwalker.com/blog/tag/android-dev
- Android SDK関連の書籍 http://amzn.to/SS0jff