최근에는 조각으로 많은 작업을 해왔고 조각의 부모 작업에 대한 참조를 사용하는 것이 가장 좋은지 궁금했습니다. onActivityCreated 콜백에서 getActivity()를 계속 호출하거나 parentActivity 변수를 초기화하는 것이 좋습니다.조각의 부모 작업을 참조하는 것이 가장 좋습니다.
12
A
답변
17
이것은 실제로 Fragments의 공식 Android 문서에 포함되어 있습니다. 상위 액티비티의 컨텍스트 (예 : 토스트, 대화 상자)가 필요하면 getActivity()
으로 전화하십시오. Fragment의 인터페이스에서 콜백 메소드를 호출해야하는 경우 onAttach(...)
에서 인스턴스화 된 콜백 변수를 사용해야합니다. 당신이 조각에있는 경우
public static class FragmentA extends ListFragment {
ExampleFragmentCallbackInterface mListener;
...
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
mListener = (ExampleFragmentCallbackInterface) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + " must implement ExampleFragmentCallbackInterface ");
}
}
...
}
8
getActivity()가 가장 좋습니다. 저장할 변수를 유지할 필요가 없습니다 (항상 앱주기!). 필요한 경우 메서드를 호출하고! :)
-2
, 당신은) (getActivity를 호출 할 수 있습니다; 또는 조각에 있다면 getApplicationContext(). getContext();를 호출 할 수도 있습니다. 대부분의 경우 getActivity()는 필요한 모든 작업을 수행합니다.
관련 문제
- 1. 부모 ViewController를 통해 ViewController에 값을 프록시하는 것이 가장 좋습니다.
- 2. Django, 모델의 각 인스턴스에 대해 작업을 실행하는 것이 가장 좋습니다.
- 3. Action.Invoke를 사용하는 것이 가장 좋습니다.
- 4. 이메일을 보내는 것이 가장 좋습니다.
- 5. jquery를 사용하는 것이 가장 좋습니다
- 6. camlp4에 패치하는 것이 가장 좋습니다.
- 7. phpthumb을 사용하는 것이 가장 좋습니다.
- 8. 부모 클래스가 하위에만있는 속성을 참조하는 것이 적절합니까?
- 9. 파일을 PHP 배열에로드하는 것이 가장 좋습니다.
- 10. . 데이터 소스에 연결하는 것이 가장 좋습니다.
- 11. 은 appengine 데이터 저장소의 카운팅을 참조하는 것이 좋습니다.
- 12. WordPress 게시물의 JavaScript를 사용하는 것이 가장 좋습니다.
- 13. 이 예제는 인덱스를 사용하는 것이 가장 좋습니다
- 14. 어떤 Oracle 인덱스를 선택하는 것이 가장 좋습니다
- 15. GCM/APN에서 PHP로 푸시하는 것이 가장 좋습니다.
- 16. 큰 Li를 ul에 추가하는 것이 가장 좋습니다.
- 17. 브라우저에서 PDF 파일을 표시하는 것이 가장 좋습니다.
- 18. 데이터베이스에 IP 주소를 저장하는 것이 가장 좋습니다
- 19. 플래시에서 데이터를 저장하는 것이 가장 좋습니다.
- 20. 공개 객체를 상속하거나 사용하는 것이 가장 좋습니다.
- 21. ViewState 또는 hiddenfield를 사용하는 것이 가장 좋습니다
- 22. CFEngine의 update.conf를 업데이트하는 것이 가장 좋습니다.
- 23. javascript로 요소를 확장하는 것이 가장 좋습니다.
- 24. ANTLR과 같은 파서를 사용하는 것이 가장 좋습니다.
- 25. ASIHTTPRequest - 복수 요청을 취소하는 것이 가장 좋습니다.
- 26. URL에서 테이블 ID를 숨기는 것이 가장 좋습니다.
- 27. 클래스를 사용하여 gamedata를 저장하는 것이 가장 좋습니다.
- 28. SlimDX 대 SDL - 어느 것이 가장 좋습니다?
- 29. 안드로이드에 문자열을 저장하는 것이 가장 좋습니다
- 30. string.Format과 함께 HtmlTextWriter를 사용하는 것이 가장 좋습니다.
FragmentCallbackInterface를 사용하면이를 구현하는 것이 가장 좋습니다. –
@James : getActivity()를 사용하는 것보다이 방법이 더 좋은 이유를 설명해 주시겠습니까? 경우에 따라 getActivity()가 null을 반환하고 앱이 다운됩니다. 위의 방법을 사용하면 앱이 다운되지 않을 수 있습니까? 감사. – Rajat
getActivity()가 null을 반환하면 아직 연결되지 않았으므로'mListener'도 null입니다. 이 접근법은'getActivity()'를 사용하는 것보다 낫습니다. 왜냐하면 당신이 첨부 된 모든 액티비티가 프래그먼트의 컨텐트로 작업하는 데 필요한 인터페이스를 구현하기 때문입니다. –