以下是我正在使用的代码。 当按下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;
}
});
答案 0 :(得分:1)
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;
}
});
也许您应该尝试使用||
代替&&