onBackpressed DialogFragment

时间:2014-07-27 08:06:09

标签: android android-dialogfragment customdialog

我有3个自定义对话框(DialogFragment)。所有都不可取消,因为有必要用户无法关闭它们。第一个对话框开始第二个,第二个对话框开始第三个。现在我想回到上一个对话框,如果我正在使用backclick。此刻我有两种选择,但两种方法都不合适:

  • 我从一个对话框开始新的,但从不打电话给解雇。 - >因此,在下一个对话框的背景中始终是上一个对话框的视图

  • 如果我开始下一个对话框,我会调用dismiss,但是他不会返回上一个对话框,但会关闭对话框。

我该怎么做才能启动新对话框,因此,第一个对话框不可见,但如果我再次单击,对话框会再次显示?

非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:5)

当你从第二个对话框前进到第三个对话框时,你可以关闭第二个对话框,这样你就不会在第三个对话框中看到它。

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

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

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
  5. 然后如果你需要回去,你可以:

    1. thirdDialog - > startSecondDialog
    2. thirdDialog.dismiss
    3. 依此类推,直到你回到第一个对话框。

      我希望这对您有意义,如果没有,请给我们一些代码,以便我们可以提供有关您项目的更多详细信息:)