Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발빌런

안드로이드에서 Fragment를 newInstance로 생성하는 이유 본문

Java

안드로이드에서 Fragment를 newInstance로 생성하는 이유

seungjun.lee 2018. 2. 26. 22:12

안드로이드에서 아래와 같이 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