12

キャラクターがあり、それを KeyEvent KeyCode 制約http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_0に変換したい

文字「0」がある場合のように、変換したい

キーコード定数: '0' キー。

定数値: 7 (0x00000007)

KeyEvent ページで指定されているとおり。これを行うための最良の方法は何ですか?それを行うための事前定義された機能はありますか?

4

4 に答える 4

13

これは、webviewに文字を入れるために使用するソリューションです。

char[] szRes = szStringText.toCharArray(); // Convert String to Char array

KeyCharacterMap CharMap;
if(Build.VERSION.SDK_INT >= 11) // My soft runs until API 5
    CharMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD);
else
    CharMap = KeyCharacterMap.load(KeyCharacterMap.ALPHA);

KeyEvent[] events = CharMap.getEvents(szRes);

for(int i=0; i<events.length; i++)
    MainWebView.dispatchKeyEvent(events[i]); // MainWebView is webview
于 2015-07-25T10:45:52.563 に答える
4

私はまだJava/Androidに慣れていないので、私の答えはそのままではうまくいかないかもしれませんが、それでもアイデアを得ることができます.

import android.view.KeyCharacterMap;
import android.view.KeyEvent;    
...
public class Sample {
    ...
    public boolean convertStringToKeyCode(String text) {

        KeyCharacterMap mKeyCharacterMap = 
            KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD);

        KeyEvent[] events = mKeyCharacterMap.getEvents(text.toCharArray());

        for (KeyEvent event2 : events) {
            // We get key events for both UP and DOWN actions,
            // so we may just need one.
            if (event2.getAction() == 0) {
                int keycode = event2.getKeyCode();
                // Do some work
            }
        }
}

フレームワークのソースコードsendTextでメソッドのコードを読んでいたときにアイデアを得ました:uiautomator

于 2014-10-21T13:48:03.460 に答える