FragmentTabHost &片段 - 如何在选项卡之间传递数据? [英] FragmentTabHost & Fragments - How do I pass data between tabs?
问题描述
我有一个带有 FragmentTabHost 的 MainActivity (FragmentActivity).
I have a MainActivity (FragmentActivity) that has a FragmentTabHost.
public class FragmentTabs extends FragmentActivity {
private FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_tabs);
mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("classA").setIndicator("Class A"),
ClassA.class, null);
mTabHost.addTab(mTabHost.newTabSpec("classB").setIndicator("Class B"),
ClassB.class, null);
mTabHost.addTab(mTabHost.newTabSpec("classC").setIndicator("Class C"),
ClassC.class, null);
}
}
ClassA、ClassB 和 ClassC 都是片段(android.support.v4.app.Fragment).
ClassA, ClassB and ClassC are all Fragments (android.support.v4.app.Fragment).
我需要在 Fragment 上传递数据(和调用方法).我如何获得每个片段的引用,如下所示:
I need to pass data (and call methods) on the Fragments. How can I get a reference of each of the Fragments, like this:
ClassA mClassAFragment = ???;
我尝试过使用 getSupportFragmentManager().findFragmentByTag() 并且我也尝试探索 mTabHost 的功能.没有什么可以得到它们.
I've tried using getSupportFragmentManager().findFragmentByTag() and I've also tried exploring the capabilities of mTabHost. Nothing can get them.
你能建议一种方法来做到这一点还是建议一种替代方法?
Can you suggest a way to do this or suggest an alternative approach?
推荐答案
OP 在这里.为了解决这个问题,我在 FragmentActivity 中重载了 onAttachFragment 方法:
OP here. To solve this problem I have overloaded the onAttachFragment method in my FragmentActivity:
public class FragmentTabs extends FragmentActivity {
private FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
}
@Override
public void onAttachFragment(Fragment fragment) {
super.onAttachFragment(fragment);
if (fragment.getClass() == ClassA.class) {
ClassA mClassAFragment = (ClassA)fragment
...
}
}
}
这篇关于FragmentTabHost &片段 - 如何在选项卡之间传递数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!