当前位置: 首页 > 面试题库 >

Android:如何在AlertDialog中重写onBackPressed()?

凌翔宇
2023-03-14
问题内容

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

我认为最好的方法是onBackPressed为dlgDetails覆盖,但是我不确定该怎么做,因为必须使用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 ...)


 类似资料:
  • 问题内容: 我有一个问题,如何向AllertDialog显示此数组item_detail? } 这是我的代码: } 问题答案: 我还有一个问题,如何使图片显示在内容区域而不是图标中。你能再帮我吗?所以这是您的完整代码: XML:(alert_background.xml) Java代码:

  • 我正在尝试在AlertDialog中执行CardView的StartActivity,但它不起作用 我在网上找不到任何类似的东西,我也试过用一个按钮,我得到了同样的错误(见文章底部的LogCat) 以下是我的AlertDialog的布局: 这是我的主菜 这是我的日志:

  • 我需要锁定警报对话框。现在,当我的alertDialog启用并且当我单击屏幕时,我的alertDialog关闭。我需要等待进度条结束才能关闭AlertDialog。我怎么能这么做?谢谢

  • 问题内容: 我正在尝试在我的PHP应用程序中实现URL重写。有人可以分享在PHP和MySQL中实现URL重写的分步过程吗? 在我的应用程序中,我想实现以下URL重写,我想重定向 至 请告诉我如何以上述任何一种方式实现这两个URL重写。 根据以下两种类型中的SEO,管理,应用程序的观点,哪个URL最好是另一件事。 问题答案: 通常,这只不过是启用mod_rewrite模块(您可能已经在主机上启用了该

  • 我正在使用一个警报对话框,显示一个菜单在应用程序的开始,我想要对话框显示我的两个值,是“名称”从一个对象,这里是警报对话框的代码: 是包含字符串“name”的对象,包含数组

  • 我想在使用AlertDialog时使用android插件库中的自定义字体。下面是使用自定义字体显示警报对话框的代码。 我收到错误: 我已将字体文件放在Unity的“资产/资源”文件夹中。因此,在最终apk中,字体资源显示在“资产/字体”文件夹中。但是,这并不重要,因为我可以在其他文本视图中使用自定义字体。 唯一的问题是,我相信它找不到AlertDialog的消息和标题。任何帮助都将不胜感激。