Row*_*man 5 android android-tabhost android-fragments android-fragmentactivity
我有一个MainActivity(FragmentActivity),它有一个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);
}
}
Run Code Online (Sandbox Code Playgroud)
ClassA,ClassB和ClassC都是Fragments(android.support.v4.app.Fragment).
我需要在Fragments上传递数据(和调用方法).如何获得每个片段的引用,如下所示:
ClassA mClassAFragment = ???;
Run Code Online (Sandbox Code Playgroud)
我尝试过使用getSupportFragmentManager().findFragmentByTag(),我也试过探索mTabHost的功能.没有什么可以得到他们.
你能建议一种方法来做这个或建议一种替代方法吗?
Row*_*man 11
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
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13752 次 |
| 最近记录: |