gpt4 book ai didi

java - Android - onKeyDown 不适用于 KEYCODE_MENU

转载 作者:行者123 更新时间:2023-12-02 04:22:09 25 4
gpt4 key购买 nike

onKeyDownKEYCODE_MENU 一起使用不会执行任何操作,但它可以与 KEYCODE_SEARCH 一起使用

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode){
case KeyEvent.KEYCODE_MENU:
Toast.makeText(this, "Menu key pressed", Toast.LENGTH_SHORT).show();
return false;
case KeyEvent.KEYCODE_SEARCH:
Toast.makeText(this, "Search key pressed", Toast.LENGTH_SHORT).show();
return false;
}
return super.onKeyDown(keyCode, event);
}

我认为有一些东西在处理菜单键,所以它不会听我的代码我尝试像这样禁用 onCreateOptionsMenu :

@Override
public boolean onCreateOptionsMenu(Menu menu) {
return true;
}

但还是不行..
那么,有什么想法可以让菜单按钮监听 onKeyDown 吗??

最佳答案

这可能是 appcompat v22 中的错误。请参阅https://code.google.com/p/android/issues/detail?id=159795

该线程中发布的解决方法是覆盖dispatchKeyEvent:

    @Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
int action = event.getAction();
boolean isDown = action == 0;

if (keyCode == KeyEvent.KEYCODE_MENU) {
return isDown ? this.onKeyDown(keyCode, event) : this.onKeyUp(keyCode, event);
}

return super.dispatchKeyEvent(event);
}

编辑:请参阅Upgraded to AppCompat v22.1.0 and now onKeyDown and onKeyUp are not triggered when menu key is pressed

关于java - Android - onKeyDown 不适用于 KEYCODE_MENU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com