У меня есть функция 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);
кто-нибудь помочь мне?
вы можете показать мне пример? Предположим, у нас есть 3 Fragments .. Tab 1 ==> FragmentTab1 Tab 2 ==> FragmentTab2 Tab 3 ==> FragmentTab3 В Tab1 у вас есть EditText «номер 1" В TAB2 у вас есть «Номер EditText 2 " В Tab3 должна отображаться сумма двух чисел Как вы это делаете? – Roldanhollow
Я обновил свой пример, заполнив textView в Fragment C конкатенированной строкой editText из обоих других фрагментов. – Christian
Я пробовал использовать FragmentManager fm = getFragmentManager(); aFragment = fm.findFragmentByTag ("ClassA"); aFragment.mActivity = this; Но не работает .... aFragment is null ... как его инициализировать? – Roldanhollow