【问题标题】:AlertDialog getting cancelled by hardware search button press按下硬件搜索按钮取消 AlertDialog
【发布时间】:2011-07-20 19:35:01
【问题描述】:
我在我的应用程序中显示了一个 AlertDialog,即使我已将其设置为不可取消,当按下硬件搜索按钮时它也会被取消。
我尝试覆盖 keyDown 方法并检测按键以及 onSearchRequested 方法。但是它们在第一次按下按钮时都不起作用,尽管在那之后它们起作用。
有什么想法吗?
PS:我知道这是repeated question....但没有人回复它,这就是为什么重新发布:)
【问题讨论】:
标签:
android
android-alertdialog
【解决方案1】:
您应该可以使用 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();