Android에서는 drawable.xml나 string.xml의 리소스를 가지고 오려면
반드시 context를 거쳐야만 해당 리소스들을 가져올 수 있는 귀찮은 점이 있다.
이는 MVVM패턴 속에 context를 인자로 넘겨주지 않기 때문이다.
따라서 매번 context를 가져오기 귀찮으니,
Application에서 context를 가져올 수 있도록 구현해두고 필요할 때 마다 context에 접근할 수 있도록 만들자.
즉, 앱 전체에서 사용할 수 있는 context를 만들어주는 것이다.
※ 참고
Context에 접근하여 String을 가져온다 == values파일의 strings.xml에 쓰여진 name을 가져온다
그런데 여기서 name값은 내부적으로 int값으로 인식되기 때문에 int형으로 받아와 string으로 변환시켜줘야한다.
companion object에서 context 사용
Kotlin
MyApplication.kt
class MyApplication : Application() {
init{
instance = this
}
companion object {
lateinit var instance: MyApplication
fun ApplicationContext() : Context {
return instance.applicationContext
}
}
}
이후 밑의 코드로 사용하면 된다.
MyApplication.Companion.ApplicationContext()
REFERENCE
- https://roomedia.tistory.com/entry/Android-Context%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
- https://minggu92.tistory.com/31
- https://kotlinworld.com/43
- https://namget.tistory.com/entry/%EC%BD%94%ED%8B%80%EB%A6%B0-mvvm%ED%8C%A8%ED%84%B4-%EC%86%8D-application-context-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0
'# 1. Language > 🔰 Kotlin' 카테고리의 다른 글
[Android/Kotlin] 블루투스 목록 PJT -1. 데이터 바인딩하여 버튼 클릭 시 Toast메세지 출력하기 (0) | 2022.09.02 |
---|---|
Kotlin # Companion Object (0) | 2022.08.01 |
Kotlin # Context (0) | 2022.07.26 |
Kotlin # Intent (0) | 2022.07.26 |
Kotlin # 계산기 만들기 (0) | 2022.07.20 |