如何清空后挡?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何清空后挡?相关的知识,希望对你有一定的参考价值。
我正在使用DialogFragment
。我有三个对话框一个接一个出现。
国家列表 - >州列表 - >地区列表
我在每个对话框上都有拖拽按钮,Cancel
和OK
。在显示下一个对话框之前,我将当前对话框放到堆栈上现在,用户可以在“状态列表”对话框中按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);
以上是关于如何清空后挡?的主要内容,如果未能解决你的问题,请参考以下文章