마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Index에 따라서, 각기 다른 여러 종류의 Fragment를 생성하려고 합니다.

0 추천
7가지 서로 다른 Fragment를 index값에 따라서, 생성하고, Display하는 App을 연습중입니다.

다음과 같은 method를 만들어서 사용중입니다.

private void selectFragment (int index) {

    Fragment f;

    FragmentManager fm;

    FragmentTransaction ft;

    fm = getFragmentManager();

    ft = fm.beginTransaction();

    switch (index) {

    case 0:

        f = new testFragment1();

        break;

    case 1:

        f = new testFragment2();

        break;

    case 2:

        f = new testFragment2();

        break;

    case 3:

        f = new testFragment3();

        break;

    case 4:

        f = new testFragment4();

        break;

    default:

        break;

    }

    ft.replace(R.id.fragment_layout, f);

    ft.commit();

}

 일단, 이 방법으로 정상 동작합니다.  

다만, 다음과 같은 의문사항이 있어서 질문을 드립니다.

1. 7가지 Fragment를 매번 new로 생성하는것이 아니고, application 시작시에 미리 7가지를 다 만들어 두고, index값에 따라서, replace하는 방법은 없을까요?

현재는 index에 따라서 new testFragment0/1/2/3()을 하는데, 처음 Activity시작시에 미리 모든 fragment를 생성해두고, index에 따라서 선택만 하면 되도록 할수는 없을까요? switch() ~ case문을 사용할 필요없이 말입니다.

2. 만약 위의 1번 질문처럼 할수 없다면, switch()~ case문을 사용하지 않고, 각기 다른 fragment를 index에 따라 생성하는 방법은 없을까요?
익명사용자 님이 2014년 3월 5일 질문

1개의 답변

0 추천
멤버변수로 fragment 배열을 만드시고

처음에 미리 다 생성해 놓고 인덱스에 따라 배열에서 fragment를 가져다 사용하시면 됩니다.
원조안드로이드 (58,190 포인트) 님이 2014년 3월 6일 답변
...