Как заменить фрагментацию в приведенном ниже коде?
/**
* Diplaying fragment view for selected nav drawer list item
* */
private void displayView(int position) {
// update the main content by replacing fragments
FragmentActivity fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new HomeFragment();//LessonPlanFragment();
break;
case 2:
fragment = new HomeFragment();//GradeBookFragment();
break;
case 3:
fragment = new HomeFragment();//StudentFragment();
break;
case 4:
fragment = new HomeFragment();//ReportsFragment();
break;
case 5:
fragment = new HomeFragment();//AppSettingsFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
android.app.FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.frame_container, fragment);
ft.commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
Я пытался использовать библиотеку поддержки, но ничего не помогло. Сообщение об ошибке гласит "het метод replace(int, Fragment) в типе FragmentTransaction не применим для аргументов (int, FragmentActivity).
1 ответ
Это не сработает. Вы пытаетесь заменить Fragment
с FragmentActivity
а это невозможно Вы можете сделать это только с Fragment
s. В целях разъяснения FragmetnActivity
выступает в качестве хоста Activity для фрагментов в библиотеке поддержки.