在 Activity 中获取 Fragment 实例
Get Fragment instance in Activity
I have added Fragment to Activity like
getSupportFragmentManager().beginTransaction()
.add(R.id.container,new MyFragment).commit();
其中 container
是 FrameLayout
的 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.
因此我建议:
- 在
Fragment B
中定义一个interface
。
- 在
activity
中实施 interface
。
- 然后最终将消息传递给
Fragment A
。
试试这个
getSupportFragmentManager().beginTransaction()
.add(R.id.container,new MyFragment(),"MyFragment").commit();
获取片段
MyFragment frag = ((MyFragment) getSupportFragmentManager().findFragmentByTag("MyFragment"));
I have added Fragment to Activity like
getSupportFragmentManager().beginTransaction()
.add(R.id.container,new MyFragment).commit();
其中 container
是 FrameLayout
<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.
因此我建议:
- 在
Fragment B
中定义一个interface
。 - 在
activity
中实施interface
。 - 然后最终将消息传递给
Fragment A
。
试试这个
getSupportFragmentManager().beginTransaction()
.add(R.id.container,new MyFragment(),"MyFragment").commit();
获取片段
MyFragment frag = ((MyFragment) getSupportFragmentManager().findFragmentByTag("MyFragment"));