【发布时间】:2016-03-15 23:02:29
【问题描述】:
问题如下。让我们有 3 个带有片段的选项卡:
- 标签 1(片段 A)。需要将数据发送到 Tab 2。
- 标签 2(片段 B)。需要从 Tab 1 接收数据。
- 标签 3(片段 B)。已经包含数据。
如您所见,Tab 3 和 Tab 2 包含相同的 Fragment 但不同的实例。
如何将数据(不是通过参数)发送到 Tab 2?
我尝试过的:
- 在创建片段 B 时通过参数设置其唯一 ID。
- 为 Fragment B 的两个实例注册相同的
Local Broadcast Receiver - 将数据从 Fragment A 发送到 Fragment B 及其 ID
- 在 Fragment B
onReceive()检查收到的 ID 是否等于 Fragment 的 ID
但不幸的是,广播仅发送到 Tab 3。
编辑:更多信息。
这些选项卡托管在另一个带有ViewPager 的片段中。那是由于NavigationDrawer 的组合,它具有与ViewPager 和相关标签的片段。
【问题讨论】:
-
为什么不让fragment A给你的activity发送数据,让你的activity给你fragment B发送呢?
-
你看,发送数据没有问题。问题是将数据完全发送到片段 B 的第一个实例
-
我认为 BroadcastReceiver 占用太多内存并且是异步过程,我认为您不需要。它还有安全问题需要解决。
标签: android android-fragments tabs broadcastreceiver android-broadcast