android - 将数据发送到堆栈中的前一个 fragment

标签 android android-fragments

我有一个广泛使用 fragment 的 Activity 。

通常的流程是:

fragment A -> fragment B -> fragment C -> fragment D

有时我直接从D回到B

int id = getFragmentManager().getBackStackEntryAt(1).getId();
getFragmentManager().popBackStack(id, 0);   

它工作正常。但是,我的 Activity 中没有对 fragment B 的任何引用。

发送我刚刚在 fragment D 中获得的 fragment B 数据的最佳方式是什么?

最佳答案

fragment 旨在成为可重用的、独立的 UI 组件。他们通常不应该互相了解。符合separation of concerns的设计原则您应该有某种底层数据对象, fragment 可以对其进行操作以保存数据。

父 Activity 可以传递对此数据结构的引用,或者它可以是一个全局可访问的对象(这个问题足够抽象,提供具体的响应是不可行的)。

关于android - 将数据发送到堆栈中的前一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19392733/

相关文章:

java - 为什么添加一个空的 for 循环可以修复此代码?

android - 将位图放入包中

android - 一个简单的相对布局,与父级右对齐不起作用

android - 模拟器不给出错误,但设备在 putExtra() 上给出 java.lang.NullPointerException

android - Fragment 的菜单项被多次添加

java - Android - 将数据从父 fragment 传递到子 fragment

android - AOSP 构建缺少 libcryptfs

java - 在 Android 中打开 Fragment 时使完整背景变暗

android - 从另一个 Activity 返回后 DialogFragment 消失了

android - 在 Kotlin 中关闭第二个 Activity 时清除 Fragments 中的 Main Activity