在android中禁用DPAD键

时间:2013-04-16 08:18:38

标签: android android-layout android-tabhost android-keypad

我正在尝试捕捉箭头键(向上,向下,向右和向左)生成的事件并禁用它们。下面的代码片段来自其中一个活动类。

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.KEYCODE_DPAD_DOWN) return true;
    else return true;
}

然而,有了这些代码,密钥导航正在运行。我尝试将键监听器添加到不起作用的活动中。

目标设备是搭载Android 2.2版本的三星GT-I5500。

我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

也覆盖onKeyDown并返回true而不是false。 这样的事情:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KeyEvent.KEYCODE_DPAD_LEFT:
        case KeyEvent.KEYCODE_DPAD_RIGHT:
        case KeyEvent.KEYCODE_DPAD_UP:
        case KeyEvent.KEYCODE_DPAD_DOWN:
            return true; 
    }
    return false;
}

答案 1 :(得分:0)

documentation中,声明您应该返回:

  • true 如果你处理了这个事件
  • false 如果您想允许下一个接收者处理该事件

您的方法返回false,因此您将事件传递给默认密钥处理程序