옛글/안드로이드 프로그래밍

Why use fragment static constructor?

ShakeJ 2014. 2. 4. 10:59
반응형


http://stackoverflow.com/questions/14654766/creating-a-fragment-constructor-vs-newinstance

http://stackoverflow.com/questions/12062946/why-do-i-want-to-avoid-non-default-constructors-in-fragments


대부분의 구글 예제 들이 static을 통한 newInstance()를 사용했다. 

이 것은 'Factory method pattern' 과 관련이 있다. 

http://en.wikipedia.org/wiki/Factory_method_pattern



static 을 사용하지 않으면, 안드로이드 Lint 가 발생한다. 

@SuppressLint("ValidFragment")


라는 내용으로 올바르지 않은 Fragment라는 Lint가 발생한다.


또한 오랜 시간을 있다가 Fragment 를 다시 띄울 경우,


android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.mintshop.redmine.fragments.IssueListFragment: make sure class name exists, is public, and has an empty constructor that is public


라는 에러가 뜬다.


(위 에러는 Fragment class 내에 빈 Constructor 가 없어서 뜬다는 오류이다. )


Fragment 내에는 Constructor가 정의되어 있지 않아, Static Constructor으로 선언을 해야하기도 하며, Fragment에 Bundle로 관련 파라미터를 전달 하기 위해서 이다.



반응형