我有一个具有 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).
我需要在片段上传递数据(和调用方法)。如何获得每个片段的参考,如下所示:
ClassA mClassAFragment = ???;
我尝试过使用getSupportFragmentManager().findFragmentByTag()
,也尝试过探索 mTabHost 的功能。没有什么能得到它们。
你能建议一种方法来做到这一点或建议一种替代方法吗?
我试过用这个......
Bundle arguments = new Bundle();
arguments.putString("some id string", "your data");
YourFragment fragment = new YourFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction().add(R.id.fragmentid, fragment).commit();
R.id.fragmentid
但是如果我的添加标签很好,我不知道如何使用它:
mTabHost.addTab(mTabHost.newTabSpec("classA").setIndicator("Class A"),
ClassA.class, null);
有人帮我吗?