Activity
안에 Fragment
을 사용하고 있습니다. Fragment
은 OnInitListener
인터페이스를 가지고있어서 메서드라고하는 Activity
호스트에 데이터를 전달합니다. 이 문제는 몇 번 나는 그것이 여기에 Activity#onCreate
에 이니셜되는 객체에서 NullPointerException
를 얻을 수 (일반적으로 화면 잠금 및 잠금 해제) 코드라는 것이다 :활동 및 조각 on call order
// Activity
public void onCreate() {
super.onCreate();
// ...some code...
myObject = new MyObject();
}
@Override
public void onInit(ObjectProperty property) {
myObject.setProperty(property); // Here I get NullPointerException
}
// Fragment
public void onCreate() {
// ... some code ...
property = new ObjectProperty();
listener.onInit(property);
}
@Override
public void onAttach(Activity activity) {
listener = (OnInitListener) activity; // This part is actually surrounded by try/catch, so don't worry about it
}
, Fragment
객체를 초기화해야하며, 그것을 청취자에게 건네 주면 Activity
은 그것을 다른 객체로 설정할 수 있습니다.
Fragment#onCreate
이 Activity#onCreate()
보다 먼저 호출되고 있는데 그 이유가 내가 NPE
이 되겠지만 잘못된 것일 수 있습니다. 어떤 아이디어?
중복 일 수 있습니까? http://stackoverflow.com/questions/13941584/can-some-draw-lifecycle-of-fragment-and-its-parent-fragmentactivity – Birdy