Как заменить фрагментацию в приведенном ниже коде?

/**
 * 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 а это невозможно Вы можете сделать это только с Fragments. В целях разъяснения FragmetnActivity выступает в качестве хоста Activity для фрагментов в библиотеке поддержки.

Другие вопросы по тегам