У меня есть макет вкладки с 3 элементами вкладки, каждый из которых имеет свой собственный фрагмент для загрузки во время выполнения при выборе.
MainActivity.class: Здесь вызывается LoadFragment в соответствии с положением выбранной вкладки .
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
LoadFragment(new LocationFragment());
break;
case 1:
LoadFragment(new InformationFragment());
break;
case 2:
LoadFragment(new CommentsFragment());
break;
}
}
Мой вопрос: как я могу использовать оператор switch для logi c для загрузки нужного фрагмента с помощью диспетчера фрагментов? Я не хочу иметь если еще иерархию операторов.
private void LoadFragment(Fragment fragment) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
switch (*some logic here*) {
case fragment instanceof LocationFragment:
Log.i("MainActivity", "inside load fragment");
ft.replace(R.id.coordinate_layout, new LocationFragment());
break;
case fragment instanceof InformationFragment:
ft.replace(R.id.coordinate_layout, new InformationFragment());
break;
case fragment instanceof CommentsFragment:
ft.replace(R.id.coordinate_layout, new CommentsFragment());
break;
ft.commit();
}
}