개발빌런
안드로이드에서 Fragment를 newInstance로 생성하는 이유 본문
안드로이드에서 아래와 같이 static newInstance() 메소드를 이용하여 프래그먼트를 생성하는 코드를 많이 접해보셨을 것이라 생각합니다.
1 2 3 4 5 6 7 8 9 | public class MyFragment extends Fragment { public static newInstane() { return new MyFragment(); } public MyFragment() { ... } } | cs |
위의 코드는 아무런 의미가 없어 보입니다. newInstance() 메소드를 사용할 필요 없이 그냥 constructor 만 있어도 될 것 같습니다.
왜 필요할까요?
안드로이드의 프래그먼트는 파라미터가 없는 constructor 만 가지고 있습니다.
따라서 아래와 같이 constructor를 통해 프래그먼트에 데이터를 할당하는 방식은 사용할 수 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class MyFragment extends Fragment { private int num; private String temp; public MyFragment(int num) { this.num = num; } public MyFragment(String temp) { this.temp = temp; } } | cs |
constructor를 통해 프래그먼트의 값을 초기화 할 수 없기 때문에 다음과 같이 newInstance() 메소드를 이용하여 객체에 데이터를 할당합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class MyFragment extends Fragment { private int num; private String temp; public static newInstance(int num, String temp) { MyFragment fragment = new MyFragment(); fragment.num = num; fragment.temp = temp; return fragment; } } | cs |
'Java' 카테고리의 다른 글
ArrayList vs Vector (0) | 2018.02.26 |
---|
Comments