如何清空后挡?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何清空后挡?相关的知识,希望对你有一定的参考价值。

我正在使用DialogFragment。我有三个对话框一个接一个出现。

国家列表 - >州列表 - >地区列表

我在每个对话框上都有拖拽按钮,CancelOK。在显示下一个对话框之前,我将当前对话框放到堆栈上现在,用户可以在“状态列表”对话框中按Cancel按钮。我不希望他被带回国家名单对话框。我只是要退出对话框。同样,当用户按下OK按钮时,我不希望弹出堆叠对话框。我想优雅地结束对话框并更新数据库。

我搜索了SO和谷歌文档。我发现这应该通过以下方式实现:

FragmentManager ft = getFragmentManager();
ft.popBackStack("mydialog", FragmentManager.POP_BACK_STACK_INCLUSIVE);

但它对我不起作用。我试着把它放在builder.setNegativeButton里面,也放在builder.setPositiveButton里面。似乎没什么用。

这是我把它们放在堆栈上的方式:

    RegionsDialogFragment dialogFragment = new RegionsDialogFragment ();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    Fragment prev = getFragmentManager().findFragmentByTag("mydialog");
    if (prev != null) {
        ft.remove(prev);
    }
    ft.addToBackStack(null);
    dialogFragment.show(ft, "mydialog");

谢谢

编辑

看来我不清楚。我能够将对话框放到堆栈中。那不是问题。问题是当我不再需要显示堆叠对话框时,如何清空(不弹出)后退堆栈?我不希望堆叠的对话框再次弹出。我希望他们死在堆栈上,不要回来。我想清空堆栈。希望能帮助到你。

答案

您不需要添加到堆栈对话框,如果要关闭对话框,则应使用:dimiss()方法。

注意:您在addToBackStack()方法中设置为null

另一答案

从代码中删除此行

ft.addToBackStack(null);

以上是关于如何清空后挡?的主要内容,如果未能解决你的问题,请参考以下文章

HTML代码片段

如何清空android ListView控件的内容

WebGL纹理颜色原理

Java代码如何清空TXT文档

在JAVA中如何编写代码清空控制台里的东西

Python如何清空命令行交互界面的代码