下面是我正在使用的代码。 当按下 Enter 键时,它会拦截(消耗)按键并单击屏幕上的按钮。 它在我的摩托罗拉 Android 手机上运行良好,具有硬件键盘和屏幕键盘。 它也适用于 Eclipse/ADT 中的 Galaxy Nexus Android 虚拟设备。 但它不适用于 Eclipse/ADT 中的 Nexus One Android 虚拟设备。 有人知道为什么会这样吗? 我担心使用 Nexus One 的人会下载我的应用程序,但它无法运行。
PS:我还尝试了其他几种 onKey 方法(使用 onKeyUp、onKeyDown 和 ACTION_UP),但没有一种方法适用于 Nexus One。
MyEditText.setOnKeyListener(new EditText.OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER))
{
MyButton.performClick();
return true;
}
return false;
}
});
最佳答案
MyEditText.setOnKeyListener(new EditText.OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if ((event.getAction() == KeyEvent.ACTION_DOWN) || (keyCode == KeyEvent.KEYCODE_ENTER))
{
MyButton.performClick();
return true;
}
return false;
}
});
也许你应该尝试使用 ||
而不是 &&
关于java - setOnKeyListener onKey 不适用于 Eclipse/ADT Android 虚拟设备 - Nexus One,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964816/