Android Jetpack

Android ViewModel - 5 (ViewModel Factory)

개복치 개발자 2021. 12. 24. 23:16

 ViewModel을 공부하다 보면, ViewModel Factory라는 것이 나옵니다. 

 

 이 ViewModel Factory라는 것이 무엇인지 한번 짚고 넘어가겠습니다.

 

 일단 기존의 ViewModel의 코드를 보면서 한번 생각해보면

 

 위의 같이 ViewModel에서 어떠한 파라메터를 받지 않고 생성이 됩니다.

 

 만약에 ViewModel에 생성자로 파라메터를 넘겨줄 때 어떻게 해야할까요? 그 때문에 ViewModel Factory라는 개념이 나왔습니다.

 

 DataSource나 reposifoty를 viewModel에 파라메터로 넘겨주기 위해서 사용합니다.

 

 그렇다면 어떻게 사용할까요? 한번 살펴보겠습니다.

 

 저는 MainViewModel에 startNum이라는 값을 넘겨주기 위해 ViewModel을 만들었습니다.

 

 그리고, ViewModelFactory를 만들어보고

 

   MainActivity에서 연결해줍니다.

 

 이렇게 하면, 저희가 원하는 형태로 파라메터를 넘겨줄 수 있습니다.

 

 

 

-- 참조

 

https://developer.android.com/codelabs/kotlin-android-training-view-model#7

 

Android Kotlin Fundamentals: 5.1 ViewModel  |  Android Developers

In this codelab, you learn how to use ViewModel to enable data to survive configuration changes such as screen rotations in your Android Kotlin app.

developer.android.com