问题描述
从显示对话框的位置使用myDialogFragment.setTargetFragment(this,
MY_REQUEST_CODE)
,然后在对话框完成后,您可以从中调用getTargetFragment().onActivityResult(getTargetRequestCode(),
...)
,并onActivityResult()
在包含的片段中实现。
这似乎是对 的滥用onActivityResult()
,尤其是因为它根本不涉及活动。但是我已经看到了官方谷歌人推荐的,甚至可能在 api
演示中。我认为这g/setTargetFragment()
是添加的。
解决方法
我将 DialogFragments 用于许多事情:从列表中选择项目,输入文本。
将值(即列表中的字符串或项目)返回给调用活动/片段的最佳方法是什么?
目前,我正在实现调用活动DismissListener
并为 DialogFragment 提供对该活动的引用。然后 Dialog 调用 Activity
中的OnDimiss
方法,Activity 从 DialogFragment 对象中获取结果。非常混乱,它不适用于配置更改(方向更改),因为
DialogFragment 失去了对活动的引用。
谢谢你的帮助。