【发布时间】:2011-07-20 13:48:33
【问题描述】:
我有一些需要显示常规对话框的片段。在这些对话框中,用户可以选择是/否的答案,然后片段应该做出相应的行为。
现在,Fragment 类没有要覆盖的onCreateDialog() 方法,所以我想我必须在包含Activity 的外部实现对话框。没关系,但是Activity 需要以某种方式将所选答案报告给片段。我当然可以在这里使用回调模式,因此片段在Activity 上注册一个监听器类,Activity 会通过那个或类似的东西报告答案。
但这对于在片段中显示“简单”是-否对话框的简单任务来说似乎是一个很大的混乱。此外,这样我的Fragment 将不那么独立。
有更简洁的方法吗?
编辑:
这个问题的答案并没有真正详细解释应该如何使用 DialogFragments 来显示来自 Fragments 的对话框。所以AFAIK,要走的路是:
- 显示片段。
- 在需要时,实例化一个 DialogFragment。
- 将原来的Fragment设置为这个DialogFragment的目标,用
.setTargetFragment()。 - 使用原始片段中的 .show() 显示 DialogFragment。
- 当用户在此 DialogFragment 上选择某个选项时,通知原始 Fragment 有关此选择(例如用户单击“是”),您可以使用 .getTarget() 获取原始 Fragment 的引用。
- 关闭 DialogFragment。
【问题讨论】:
-
您的技术有效,除非发生屏幕旋转。然后我得到一个力量。有什么想法吗?
-
@Weston 查看 Zsombor 的第一个答案:stackoverflow.com/questions/8235080/…
标签: android android-dialogfragment android-dialog