[안드로이드] navigation drawer에서 fragment를 사용해 화면전환을 하고싶은데요..


public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. int id = item.getItemId();

    Fragment fragment = null;
    String title = getString(R.string.app_name);

    if (id == R.id.nav_camera) {
        // Handle the camera action
        fragment = new HomeFragment();
        title = "Homes";
    } else if (id == R.id.nav_gallery) {
        fragment = new SettingFragment();
        title = "Settings";
    } else if (id == R.id.nav_slideshow) {

    } else if (id == R.id.nav_manage) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }
    if (fragment != null) {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.content_fragment_layout, fragment);
        ft.commit();
    }

    // set the toolbar title
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle(title);
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);

    return true;
}

}

Mainactivity에서 구현한 코드인데 item을 눌렀을때 생성한fragement로 넘어가고자 했습니다. 근데

if (id == R.id.nav_camera) { // Handle the camera action fragment = new HomeFragment(); title = "Homes"; } else if (id == R.id.nav_gallery) ``{ fragment = new SettingFragment(); title = "Settings"; 이부분의 new HomeFragment();와 SettingFragment(); 에서 빨간줄이 그어지는데 이유를 모르겠습니다.

  • 2016년 11월 25일에 작성됨

  • 빨간줄이 그어지는곳에 마우스를 대면 에러이유가 나오는데 에러이유를 올려주시면 대답하는 분들이 더 편할것 같습니다.     송주연   2016.11.25 23:49     
조회수 48


1 답변


경험에 의해 문제 현상에 대해 답변드리면 FragmentActivity에서 참조하는 Fragment와 HomeFragment/SettingFragment에서 참조하는 Fragment가 서로 다른것으로 추측됩니다.

올려주신 코드에서는 import 되어있는 부분 확인하시면 android.support.v4.app.fragment로 되어있는지 확인이 필요할것 같고요 HomeFragment/SettingFragment 내용도 마찬가지로 import 되어있는 부분이 android.support.v4.app.fragment로 되어있는지 확인 해보심이 좋을것 같네요

Fragment를 사용하실때 android.support.v4.app.fragment와 android.app.Fragment를 통일해서 사용해야 Error 없이 사용 가능합니다.

  • 2016년 11월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close