[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
Top page