Skip to content

ViewModel Factory

Use ViewModel Factory when you need to pass a value into a ViewModel.

Example: passing context to PlayerModel via viewmodel factory

class PlayerViewModelFactory(private val context: Context) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(PlayerModel::class.java)) {
@Suppress("UNCHECKED_CAST")
return PlayerModel(context) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}
}