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

时间:2011-07-20 10:22:00

标签: android alertdialog

我在我的应用程序中显示AlertDialog,即使我已将其设置为不可取消,但在按下硬件搜索按钮时它会被取消。

我尝试重写keyDown方法并检测按键以及onSearchRequested方法。但是这两个按钮在第一次按下时都不起作用,虽然它们在那之后工作。

有什么想法吗?

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

1 个答案:

答案 0 :(得分:4)

你应该可以使用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();