我有一个MainActivity(FragmentActivity)具有FragmentTabHost。
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).
我需要传递的数据片段(和调用方法)。我怎样才能得到每个片段的参考,像这样的:
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
...
}
}
}