可以在像这样的片段之间传输数据吗?

时间:2015-04-03 09:53:08

标签: android android-fragments

有一个主要活动(A)和两个片段(F1F2)。两个片段都有setRetainInstance(true);个声明。 F2有一个静态字段bA首先运行F1。按钮点击后,F1使用片段管理器运行F2。所以我创建F2 intsance,使用setter方法设置字段b并将其放入片段管理器。这是一个好方法吗?使用bundle是在片段之间传输数据的唯一“好”方式吗?如果b不是静态的呢?这会改变这种情况吗?

2 个答案:

答案 0 :(得分:0)

您的方式 ALSO 一种在Fragments之间传输数据的方式只应在我们需要Retain时使用State的{​​{1}},即我们想要保存Fragment的状态,例如我们使用的Fragment属性Buttonvisible状态invisible

答案 1 :(得分:0)

片段意味着独立且可重复使用。您不应该使用静态进行此类操作。静态字段也不适合内存管理。使用捆绑,这在很多方面都很有帮助,包括 savedInstanceState

想象一下您需要在单个屏幕中多次重复使用Fragment B的情况。那个静态字段将无法存储多个值。不是吗?

您应该遵循标准做法,因为他们设计它来处理我们可能不知道的许多场景。只需去捆绑。