Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用android中的DPAD键_Android_Android Layout_Android Tabhost_Android Keypad - Fatal编程技术网

禁用android中的DPAD键

禁用android中的DPAD键,android,android-layout,android-tabhost,android-keypad,Android,Android Layout,Android Tabhost,Android Keypad,我试图捕捉由箭头键(向上、向下、向右和向左)生成的事件并禁用它们。下面的代码片段来自某个activity类 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.KEYCODE_DPAD_DOWN) return true; else return true; } 然而,有了这些代码,按键导航就可以工作了。我尝试将键侦听器添加到活动中,但也

我试图捕捉由箭头键(向上、向下、向右和向左)生成的事件并禁用它们。下面的代码片段来自某个activity类

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.KEYCODE_DPAD_DOWN) return true;
    else return true;
}
然而,有了这些代码,按键导航就可以工作了。我尝试将键侦听器添加到活动中,但也不起作用

目标设备是三星GT-I5500,搭载安卓2.2版本

我遗漏了什么吗?

在中,声明您应该返回:

  • 如果您处理了该事件,则为true
  • 如果希望允许事件由下一个接收器处理,则为false

您的方法返回false,因此您将事件传递给默认的密钥处理程序,同时覆盖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;
}

我不确定返回event.getAction的是什么,但如果(keyCode==KeyEvent.keyCode\u DPAD\u DOWN)我也尝试过,可能会尝试使用它!但不工作。请检查编辑!我现在从方法返回true。但是钥匙仍然是可用的谢谢你的回答!但是,它几乎没有做出任何改变。顺便说一下,mine是一个使用tabHost和TabGroupActivity的选项卡式应用程序。有什么我必须处理的吗?