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에 따라 생성하는 방법은 없을까요?