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

另一个需要检查的重要事项是按键动作(向上键、向下键或混合键),否则您将对 keyup 和 keydown 做出反应。以下是检查密钥的方法:

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