gpt4 book ai didi

Android:如何在 AlertDialog 中覆盖 onBackPressed()?

转载 作者:IT老高 更新时间:2023-10-28 22:23:51 25 4
gpt4 key购买 nike

我有一个 AlertDialog dlgDetails,它显示在另一个 AlertDialog dlgMenu 中。如果用户按下 dlgDetails 中的后退按钮,我希望能够再次显示 dlgMenu,如果他在对话框外按下,则只需退出对话框。

我认为最好的方法是为 dlgDetails 覆盖 onBackPressed,但我不知道该怎么做,因为必须使用 Builder 间接创建 AlertDialogs。

我正在尝试创建一个派生的 AlertDialog(public class AlertDialogDetails extends AlertDialog { ...}),但我想我还必须在其中扩展 AlertDialog.Builder类返回一个 AlertDialogDetails,但没有更简单的方法吗?如果没有,您将如何覆盖 Builder?

最佳答案

我终于在我的对话框中添加了一个键监听器来监听 Back 键。不像覆盖 onBackPressed() 那样优雅,但它可以工作。代码如下:

dlgDetails = new AlertDialog.Builder(this)
.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey (DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.getAction() == KeyEvent.ACTION_UP &&
!event.isCanceled()) {
dialog.cancel();
showDialog(DIALOG_MENU);
return true;
}
return false;
}
})
//(Rest of the .stuff ...)

有关 Kotlin 的答案,请参见此处:Not working onbackpressed when setcancelable of alertdialog is false

关于Android:如何在 AlertDialog 中覆盖 onBackPressed()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com