# 1. Language/🔰 Kotlin

Kotlin # Android 전체에서 context에 접근할 수 있도록 만들기

둥굴둥굴둥굴레차 2022. 8. 1. 13:46

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