5

Android NativeActivity からソフトウェア キーボードから入力を取得する方法を探しています。

ソフトウェアキーボードを取り出す方法のサンプルコードを提供するこれを見つけました(そしてそれは機能します)が、いくつかの興味深い点が欠けています

  1. 一度表示されたキーボードの入力を取得する方法。
  2. ユーザーが戻るボタンを使用してキーボードを閉じたときにアプリがクラッシュするのを回避する方法。

これらの質問のいずれかに対する回答がある場合、またはさらに良いことに、JNI を使用する必要のないキーボードを表示する簡単な方法がある場合は、共有してください。

前もって感謝します、

ハイメ

4

2 に答える 2

5

誰かが疑問に思っている場合は、AInputEvents を取得する struct android_app に割り当てられたコールバックで、通常の方法でキーボード入力にアクセスします。

if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_KEY)
{
lint32_t key_val = AKeyEvent_getKeyCode(event);
fprintf("Received key event: %d\n", key_val);

if((key_val >= AKEYCODE_A && key_val <= AKEYCODE_Z))
{
    fprintf("Got a letter");
}
return 0;
}

ここで、AKEYCODE_BACK や AKEYCODE_VOLUME_UP などのキー コードをチェックして、他の「ハードウェア」ボタンにアクセスすることもできます。

于 2012-12-06T17:10:48.307 に答える
0

もう 1 つの重要な確認事項は、キー アクション (キーアップ、キーダウン、または混合) です。そうしないと、キーアップとキーダウンの両方に反応することになります。キーアップを確認する方法は次のとおりです。

if(AKeyEvent_getAction(event) == AKEY_EVENT_ACTION_UP)
    fprintf("key up!");
于 2015-04-09T19:16:25.730 に答える