프래그먼트 안에서 context 객체가 필요한 경우에도 2가지 경우의 상황이 있다.
- 프래그먼트가 액티비티에 붙어있는 경우
- 프래그먼트가 아직 액티비티에 붙지 않은 경우
아래 설명은 1번 상황이라고 가정하고 공식 문서에서의 설명과 stackoverflow에서 예시를 가지고 왔다.
공식 문서
https://developer.android.com/guide/components/fragments.html?hl=ko
주의: Fragment 내에 Context 객체가 필요한 경우, getContext()를 호출하면 됩니다. 하지만 getContext()를 호출하는 것은 프래그먼트가 액티비티에 첨부되어 있는 경우로 국한해야 한다는 점에 유의하세요. 프래그먼트가 아직 첨부되지 않았거나 수명 주기가 끝날 때 분리되었다면 getContext()는 null을 반환합니다.
사용법 예시
getSupportActionBar from inside of Fragment ActionBarCompat
I'm starting a new project that uses the AppCompat/ActionBarCompat in v7 support library. I'm trying to figure out how to use the getSupportActionBar from within a fragment. My activity that hosts ...
stackoverflow.com
((AppCompatActivity)getActivity()).getSupportActionBar().setSubtitle(R.string.subtitle);
이런 식으로 사용한다. 그렇지만 공식 문서에도 얘기 했듯이 프래그먼트가 액티비티에 붙어 있는 경우에만 가능한 경우다. 2번 상황인 경우는 콜백 함수인 onAttach()를 사용해야 하는데 이는 시간이 나면 추가로 작성할 예정이다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
Retrofit2 를 사용시에 에러나는 것들 (0) | 2020.09.02 |
---|---|
로컬에 있는 프로젝트 github에 올리기 (0) | 2020.07.15 |
Json 파일 가장 빠르고 정확하게 Java Object에 맞게 바꾸기 . (1) | 2020.07.08 |
<selector > 적용시 drawable 폴더를 인식 못하는 문제. (1) | 2020.07.07 |
프래그먼트 활용시 실수 하기 쉬운 2가지 (0) | 2020.07.05 |