我想在显示alertDialog时禁用全局搜索键。所以我扩展了类并重写方法dispatchKeyEvent以捕获关键消息。但是当我在AlertDialog窗口中按下搜索键时,它无法捕获键事件。为什么呢?
以下是新dispatchKeyEvent方法中的代码:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_SEARCH)
return true;
return super.dispatchKeyEvent(event);
}
答案 0 :(得分:1)
我找到了解决这个问题的方法。不是扩展AlertDialog而是扩展Builder。在构造函数中编写以下代码:
setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_SEARCH)
return true;
return false;
}
});
这可以捕获全局搜索键并删除它。