Android - 使用同一个片段(fragment)来适用于多个活动(Activity)

7

我希望能在多个活动中使用一个碎片。 在我将要使用它的第一个活动中,我通过以下方式创建了它:

    final ScoreBoard fragment = new ScoreBoard();
    getFragmentManager()
            .beginTransaction()
            .add(R.id.fragment_container, fragment)
            .commit();

在第二个活动中,我在onCreate()方法中放置了相同的代码。然而,尽管我通过onSavedInstanceState()和onActivityCreated()保存了值,但是该片段仍然重置并且不保留其值。我是否正在重新创建并重置该片段?谢谢。

1个回答

4

是的,您可以在不同的活动中使用相同的片段。

在需要调用片段的所有活动中创建一个fragment_container视图,然后将片段调用到该容器中。

例如:

Activity A:在Activity A中调用片段

 final ScoreBoard fragment = new ScoreBoard();
    getFragmentManager()
            .beginTransaction()
            .add(R.id.fragment_container_activityA, fragment)
            .commit();

活动 B: 在活动 B 中调用片段

 final ScoreBoard fragment = new ScoreBoard();
    getFragmentManager()
            .beginTransaction()
            .add(R.id.fragment_container_activityB, fragment)
            .commit();

我明白了。所以片段容器的ID必须不同? - joshua1991
是的,每个活动都包含不同的布局,每个布局应该包含不同的容器。将片段调用到该容器视图中。 - Ajay Venugopal
我们可以在多个活动中共享同一个片段实例吗? - mithil1501
@mithil1501,您能否解释一下您需要使用片段完成的情况? - Ajay Venugopal
@AjayVenugopal 如果我有一个名为Activity1的活动,其中有一个名为Fragment1的片段实例。我希望在Activity2中显示完全相同的Fragment1实例,以便如果用户与具有片段实例的Activity2交互时更改视图状态(例如ToggleButton),并关闭Activity2,通过返回到Activity1,更改将出现在具有相同Fragment1实例的Acticity1上。 - Hichem Acher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接