当在 Button 上按下 Enter 键时,我想要某种功能。 当我覆盖 onKey() 时,我编写了要为 KEY_ENTER 执行的代码。这很好用。
setupButton.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_ENTER == keyCode)
{
Intent setupIntent = new Intent(getApplicationContext(),SetUp.class);
startActivityForResult(setupIntent, RESULT_OK);
}
return true;
}
});
但是现在没有其他键可以像向上键、向下键等那样对 Button 起作用。我知道这是因为我已经覆盖了 onKey() 仅用于 ENTER。
但有没有一种方法可以保留所有其他键的功能并仅覆盖某些特定键?
注意:所有这些都是因为当按下 Enter 键时我的 onClick() 没有被调用。因此,我需要重写 onKey() 本身。
- 琪琪
最佳答案
当您在函数中返回 true 时,这会告诉 Android 您正在处理所有键,而不仅仅是 Enter 键。
您应该只在最后,在 if 语句内返回 true,并在函数结束时返回 false。
setupButton.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_ENTER == keyCode)
{
Intent setupIntent = new Intent(getApplicationContext(),SetUp.class);
startActivityForResult(setupIntent, RESULT_OK);
return true;
}
return false;
}
});
关于Android:覆盖按钮的 onKeyListener 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3853200/