我在我的应用程序中显示AlertDialog,即使我已将其设置为不可取消,但在按下硬件搜索按钮时它会被取消。
我尝试重写keyDown方法并检测按键以及onSearchRequested方法。但是这两个按钮在第一次按下时都不起作用,虽然它们在那之后工作。
有什么想法吗?
PS:我知道这是一个repeated question ....但是没有人回复它,这就是为什么重新发布:)
答案 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();