У меня есть 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);
}
}
ClassA, ClassB и ClassC — все фрагменты (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);
Кто-нибудь поможет мне?