如果我在 XML 布局中声明一个片段,如何向它传递一个捆绑包?

2022-08-31 12:43:00

我有一个活动,我用一个片段替换了它。该活动采用 Intent,其中包含有关活动应显示哪些数据的额外信息。

现在,我的活动只是一个执行相同工作的片段的包装器,如果我在 XML 中声明该片段并带有标记,那么如何将该捆绑包获取到该片段?

如果我使用 FragmentTransaction 将 Fragment 放入 ViewGroup 中,我将有机会在 Fragment 构造函数中传递此信息,但我想知道在 XML 中定义片段的情况。


答案 1

现在,我的活动只是一个执行相同工作的片段的包装器,如果我在 XML 中声明该片段并带有标记,那么如何将该捆绑包获取到该片段?

你不能。

但是,欢迎您调用您在通货膨胀后检索片段,然后在片段上调用某些方法将数据与它相关联。虽然显然不可能,但您的片段可以安排通过其他方式(,等)在配置更改后保留数据本身。findFragmentById()FragmentManagersetArguments()onSaveInstanceState()setRetainInstance(true)


答案 2

这不是一种封装的方式,但我最终从父活动“拉”了捆绑包:

Bundle bundle = getActivity().getIntent().getExtras();

推荐