Android AlertDialog被硬件搜索按钮取消按

Android AlertDialog被硬件搜索按钮取消按,android,android-alertdialog,Android,Android Alertdialog,我正在我的应用程序中显示一个AlertDialog,尽管我已将其设置为不可取消,但当按下硬件搜索按钮时,它会被取消 我尝试覆盖keyDown方法并检测按键以及onSearchRequested方法。但是第一次按下按钮时,这两个按钮都不起作用,尽管它们在按下按钮后起作用 有什么想法吗 PS:我知道这是一个。。。。但是没有人回复它,这就是为什么重新发布:)你应该可以用OnKeyListener来做。在这种情况下,只允许使用DPAD密钥 return new AlertDialog.Builder(t

我正在我的应用程序中显示一个AlertDialog,尽管我已将其设置为不可取消,但当按下硬件搜索按钮时,它会被取消

我尝试覆盖keyDown方法并检测按键以及onSearchRequested方法。但是第一次按下按钮时,这两个按钮都不起作用,尽管它们在按下按钮后起作用

有什么想法吗


PS:我知道这是一个。。。。但是没有人回复它,这就是为什么重新发布:)

你应该可以用OnKeyListener来做。在这种情况下,只允许使用DPAD密钥

return new AlertDialog.Builder(this)
    .setTitle("Title")
    .setMessage("Dialog message")
    .setCancelable(false)
    .setOnKeyListener(new DialogInterface.OnKeyListener() {

        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            //whitelist allowed keys - allow navigation keys only
            if (keyCode < KeyEvent.KEYCODE_DPAD_UP || keyCode > KeyEvent.KEYCODE_DPAD_CENTER) {
                return true;
            }
            return false;
        }
    })
.create();
返回新的AlertDialog.Builder(此)
.setTitle(“标题”)
.setMessage(“对话框消息”)
.setCancelable(错误)
.setOnKeyListener(新的DialogInterface.OnKeyListener(){
公共布尔onKey(DialogInterface对话框、int-keyCode、KeyEvent事件){
//白名单允许的键-仅允许导航键
if(keyCodeKeyEvent.keyCode_DPAD_CENTER){
返回true;
}
返回false;
}
})
.create();