当按下按钮上的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;
}
});
但现在没有其他按键可用于按钮,例如向上,向下箭头键等。我知道这是因为我已经覆盖仅用于输入的onKey()。
但是有没有办法可以保留所有其他键的功能并仅覆盖某些特定键?
注意:所有这一切都是因为按下Enter键时未调用onClick()。因此,我需要覆盖onKey()本身。
- 基基
答案 0 :(得分:5)
当你在函数中返回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;
}
});