在 Activity 中获取 Fragment 实例

Get Fragment instance in Activity

I have added Fragment to Activity like

getSupportFragmentManager().beginTransaction()
                    .add(R.id.container,new MyFragment).commit();

其中 containerFrameLayout

的 ID
 <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

现在我怎样才能在 Activity like this

中获取 Fragment 的实例

Fragment B 获得结果后,我必须调用 Fragment A 的方法。

我在 Fragment B 中创建了一个接口并在 Activity.Now 中实现了它,我必须将结果传递给 Fragment A。我无法获取 Fragment A 的实例。

One thing i don't wanna do is to create a private instance of Fragment A in Activity and call it's method.

关注这个link

All Fragment-to-Fragment communication is done through the associated Activity. Two Fragments should never communicate directly.

因此我建议:

  1. Fragment B中定义一个interface
  2. activity 中实施 interface
  3. 然后最终将消息传递给 Fragment A

Code example and reference.

试试这个

getSupportFragmentManager().beginTransaction()
                .add(R.id.container,new MyFragment(),"MyFragment").commit();

获取片段

MyFragment frag = ((MyFragment) getSupportFragmentManager().findFragmentByTag("MyFragment"));