首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onBackpressed DialogFragment

onBackpressed DialogFragment
EN

Stack Overflow用户
提问于 2014-07-27 08:06:09
回答 1查看 7.3K关注 0票数 1

我有3个自定义对话框(DialogFragment)。所有这些都是不可取消的,因为它是必要的,用户不能关闭它们。第一个对话框启动第二个对话框,第二个对话框启动第三个对话框。现在我想回到前面的对话框,如果我使用的是回击。现在我有两个选择,但这两个选项都不是很好:

  • 我从一个对话开始,一个新的,但从来没有叫解散。因此,在下一个对话框的背景中,总是上一个对话框的视图。
  • 我叫解散,如果我要启动下一个对话框,但是他不会返回到前面的对话框,而是关闭对话框。

我能做些什么,来启动新的对话框,因此,第一个对话框是不可见的,但是如果我单击“上一步”,对话框将再次可见。

非常感谢你的帮助:)

EN

回答 1

Stack Overflow用户

发布于 2014-07-27 08:28:24

当您从第二个对话框升级到第三个对话框时,您可以关闭第二个对话框,以便在第三个对话框中看不到它。

稍后,如果您需要返回到第二个对话框,您可以在关闭第三个对话框之前重新启动它,就像您从第一个对话框转到第二个对话框时启动它一样。

为了覆盖对话框的onBackPressed,您需要执行如下操作:

代码语言:javascript
复制
dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
    @Override
    public void onCancel(DialogInterface dialog)
    {
        // OVERRIDE CODE
    }
});

所以工作流程应该是这样的

  1. firstDialog -> startSecondDialog
  2. firstDialog.dismiss
  3. secondDialog -> startThirdDialog
  4. secondDialog.dismiss

如果你需要回去的话:

  1. thirdDialog -> startSecondDialog
  2. thirdDialog.dismiss

等等,直到你回到第一个对话框。

我希望这对你来说是有意义的,如果不是,请给我们一些代码,这样我们就可以帮助你的项目的更多细节:)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24979094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档