8

Android キーボードを押したときに KeyCode イベントの char 値を取得したいと考えています。

public void KeyCodeEventAsChar(int keyCode, KeyEvent event) {

  char pressedKey;

  // TODO: convert key Code Event into char

  syslog.d ("TEST", "The pressed key in Android keyboard was char: " + pressedKey);

}

誰もこれを行う方法の手がかりを持っていますか?!

アップデート:

ハードコーディングされたテキストは必要ありません。対応するcharに変換したい!

更新 2:

à、á、ò、óなどの死んだ文字も必要です...

答えが見つかりました:

// TODO: convert key Code Event into char
char pressedKey = (char) event.getUnicodeChar();

重要な注意: char の長さは 1 バイトしかないため、複数の文字はサポートされません。

4

5 に答える 5

12

>私はすでに質問の更新に答えていました

// TODO: convert key Code Event into char
char pressedKey = (char) event.getUnicodeChar();

重要な注意: char の長さは 1 バイトしかないため、複数の文字はサポートされません。

それが何らかの形であなたを助けることを願っています

于 2012-05-17T14:18:50.680 に答える
1

このようにどのキーが押されているかを確認する必要があります

if(keyCode  == KeyEvent.KEYCODE_ENTER){

syslog.d ("TEST", "The pressed key in Android keyboard was Enter" );
}

これは、すべての KeyEvents を見つけるリンクです。

http://developer.android.com/reference/android/view/KeyEvent.html

于 2012-05-16T12:34:25.127 に答える
0
KEYCODE_XX is an int

パラメータとしてキーコードを持つメソッドを作成し、その中でswitchcaseを使用して特定のタスクを実行できます。以下のように、

void getEvent(KeyEvent keyEvent){

    char pressedKey = (char) keyEvent.getUnicodeChar();

    switch(pressedKey){
        case A://
        syslog.d ("TEST", "The pressed key in Android keyboard was Enter" );
        //DO what you wnat with this event
        break;
        case B:
        syslog.d ("TEST", "The pressed key in Android keyboard was B" );
        //DO what you wnat with this event
        break;
        // so on to check other keys
    }
}

このようにして、Unicodeを使用して対応する値を取得し、これをキーリスナーとともに使用してイベントを継続的に取得できます。

于 2012-05-16T13:08:14.353 に答える