Android 如何将侦听器从片段传递到DialogFragment?
我目前正在一个单一的活动应用程序中工作,该应用程序为每个屏幕使用片段。我也在使用MVP设计模式 上下文Android 如何将侦听器从片段传递到DialogFragment?,android,android-fragments,android-dialogfragment,android-mvp,Android,Android Fragments,Android Dialogfragment,Android Mvp,我目前正在一个单一的活动应用程序中工作,该应用程序为每个屏幕使用片段。我也在使用MVP设计模式 上下文 我有一个片段(Fragment-a),其中有一个项目列表。 此片段处理每个项的操作。因为它可以访问演示者 我有一个DialogFragment(Fragment-B),您可以在其中填写一些复选框并完成一个操作(这是在Fragment-a中处理的操作,它实现了一个接口) 我正在使用一个包来创建DialogFragment。(我无法将侦听器作为参数传递) 我想要什么? 如何将Fragment-
- 我有一个片段(Fragment-a),其中有一个项目列表。 此片段处理每个项的操作。因为它可以访问演示者
- 我有一个DialogFragment(Fragment-B),您可以在其中填写一些复选框并完成一个操作(这是在Fragment-a中处理的操作,它实现了一个接口)
- 我正在使用一个包来创建DialogFragment。(我无法将侦听器作为参数传递)
如何将Fragment-A作为侦听器传递给DialogFragment(Fragment-B),以便从DialogFragment调用操作?假设您的
DialogFragment
是另一个片段的子片段(您将getChildFragmentManager()
传递给show()
),然后您的FragmentA
将得到一个回调:
当片段作为该片段的子片段附加时调用
这为您提供了对子DialogFragment的引用,您可以在其中设置所需的任何侦听器。如果在显示DialogFragment并在应用程序不再位于内存中后返回应用程序时退出应用程序,会发生什么情况?此时将不会设置侦听器。您将获得对
onAttachFragment
的新调用。好的,简而言之,使用一个实现Parcelable的接口,实现tin Frag a(也覆盖读写包,不需要在内部添加逻辑),然后在创建DialogFrag实例时通过捆绑包传递侦听器(接口),并在对话框frugment的onCreate()上接收它,