마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

일반 클래스 및 프래그먼트 context 관련

0 추천
안녕하세요,

현재 ViewPager와 TabLayout을 함께 사용하는 앱 소스를 수정중에 있습니다.

처음에 만들었던 앱은 메인액티비티에 다 짜놨던지라 소스가 엉망이라

기능별로 클래스 분류를 하고 여러가지 나누고 있는데요

그러다보니 액티비티가 없는 프레그먼트나 일반 클래스에서 context의 부재가 많이 발생합니다.

구글링을 해보니 프레그먼트에서의 context는 getActivity()로 해결을 하라고 되어있고

일반 클래스의 경우 메인 또는 넘어오기 전 액티비티에서 context를 넘겨받아 사용하라고 봤는데요

그러다보니 메인 액티비티에서 this를 넘겨주는 코드만 6줄이 되었습니다.

궁금한 점은

메인에서 이렇게 많이 context를 넘겨줄때, 코드나 실행 상에 문제가 없는지. 이것이 효율적인 것인지 궁금합니다.

다른 분들은 어떻게 사용하고 계신가요~?

참고로 context를 넘겨받는 클래스는 블루투스를 넘겨받는 클래스와 UUID를 받는 클래스, alert 등을 사용하는 클래스입니다.
yt0229 (1,070 포인트) 님이 2019년 4월 9일 질문

3개의 답변

+1 추천
두 분다 Fragment에서의 Context를 언급하셨는데 질문의 요지를 잘못 파악하신거 같습니다. 만약 답변글이 '액티비기가 없는 프레그먼트나' 이 문구때문에 작성하신거라면 보여지는 시각상 MainActivity의 AppCompatActivity와 같이 액티비티를 상속받지 않는다는 의미였습니다. (그 뒷 부분에 getActivity로 가능하다는 것을 언급)
익명사용자 님이 2019년 4월 10일 답변
0 추천

fragment 에는 getActivity, getContext, requrieActivity requireContext  가 존재 합니다. 

이들을 필요에 따라 선택해서 사용하세요 

https://developer.android.com/reference/android/support/v4/app/Fragment.html#getContext()

https://developer.android.com/reference/android/support/v4/app/Fragment.html#requireContext()

aucd29 (218,390 포인트) 님이 2019년 4월 9일 답변 1 신고
0 추천
Fragment에서 사용하는 Context는 Activity라고 보시면 됩니다. 그리고, Fragment는 Activity에서 관리하기 때문에, Fragment만 사용하는게 아니라..Activity라는 기반클래스에서 여러 Fragment를 사용한다고 보시는게 맞습니다. 그리고, 메인 액티비티에서 this로 넘겨줄 필요가 없습니다. Fragment getContext는 실제로 Activity를 반환하게 되어 있습니다.
mcsong (44,040 포인트) 님이 2019년 4월 10일 답변
...