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