我有一个具有 FragmentTabHost 的 MainActivity (FragmentActivity)。
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 都是 fragment (android.support.v4.app.Fragment)。
我需要在 fragment 上传递数据(和调用方法)。我如何获得每个 fragment 的引用,如下所示:
ClassA mClassAFragment = ???;
我尝试过使用 getSupportFragmentManager().findFragmentByTag() 并且还尝试探索 mTabHost 的功能。没有什么能得到它们。
您能否建议一种方法或建议一种替代方法?
最佳答案
OP在这里。为了解决这个问题,我在 FragmentActivity 中重载了 onAttachFragment 方法:
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
...
}
}
}
关于android - FragmentTabHost & Fragments - 如何在选项卡之间传递数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804560/