我有一些片段需要显示常规对话框.在这些对话框中,用户可以 Select 是/否答案,然后片段应该会相应地运行.
现在,Fragment
类没有要重写的onCreateDialog()
方法,所以我想我必须在包含Activity
的外部实现对话框.没关系,但是Activity
需要以某种方式向片段报告 Select 的答案.我当然可以在这里使用回调模式,因此片段在Activity
处注册为一个侦听器类,活动将通过该类或类似的方式报告答案.
但是对于像在片段中显示"简单的"是-否对话框这样的简单任务来说,这似乎是一个相当大的混乱.而且,这样我的Fragment
美元就不那么自给自足了.
有没有更干净的方法?
Edit:
这个问题的答案并没有真正详细地解释应该如何使用DialogFragments来显示来自片段的对话框.所以AFAIK,我们要做的是:
- 显示片段.
- 需要时,实例化DialogFragment.
- 将原始片段设置为此DialogFragment的目标,值为
.setTargetFragment()
. - 使用显示对话框片段.show()来自原始片段.
- 当用户在此对话框片段上 Select 某个选项时,将此 Select 通知原始片段(例如,用户单击"是"),您可以使用获取原始片段的引用.getTarget().
- 关闭DialogFragment.