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软键盘中:
我在 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软键盘中: