Android 模拟器不接受我电脑键盘的回车键

Android emulator does not take enter button of my PCs Keyboard

我在 android 模拟器中启用了我的 'hardware keyboard'(我的电脑键盘)。对于 EditText,我将 ImeAction 设置为 IME_ACTION_DONE

当我在我的模拟器或任何 android 设备的键盘上使用虚拟键盘时,此设置工作正常。但是,当我启用 'hardware keyboard' present 后按下电脑键盘上的 enter 按钮时不会。

我们需要按 'enter' 键以外的其他键才能在模拟器上执行 IME_ACTION_DONE 吗?

硬件键盘选项告诉模拟器外部(非虚拟)键盘已连接到 android。

因此您可能需要查看 KeyEvents

但是通常情况下,模拟器开箱即用 IME_ACTION_DONE。

ps: 也看看 Genymotion 作为一个模拟器!因为它比默认模拟器快得多。

PC键盘中的Enter并不代表android软键盘中的Done键,它还有一个单独的KeyEvent键处理,所以要像 Done 一样处理它,你必须结合 Done 按钮的事件来处理它的事件:

    mView.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId,
                KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE
                    || (event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER))) {
                //TODO do whatever you want
            }
            return false;
        }
    });

查看 Enter KeyEvent here

更新:

根据Android Emulator Keyboard Mapping没有代表Done键的键,它在android软键盘中: