将数据发送到堆栈中的上一个片段

elm*_*ngo 2 android android-fragments

我有一个广泛使用Fragments的Activity.

通常的流程是:

片段A - >片段B - >片段C - >片段D.

有时,我回去直接从dB

int id = getFragmentManager().getBackStackEntryAt(1).getId();
getFragmentManager().popBackStack(id, 0);   
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,我的片段B活动中没有任何参考.

发送Fragment D中的 Fragment B数据的最佳方法是什么?

Car*_*son 8

片段是可重用的,独立的UI组件.他们通常不应该彼此了解.符合关注点分离的设计原则您应该拥有片段可以操作以保存数据的某种基础数据对象.

父Activity可以传递对此数据结构的引用,也可以以某种方式将其作为全局可访问的对象(这个问题足够抽象,提供具体的响应是不可行的).