Skip to content Skip to sidebar Skip to footer

How To Instantiate Viewmodel That Extends Androidviewmodel?

I'm following a tutorial where a ViewModel extends an abstract class in order to use coroutines, this is the class that extends: abstract class BaseViewModel(application: Applicati

Solution 1:

Your ViewModel is child of AndroidViewModel which require an Application object. So you will have to provide the Factory class in order to instantiate the ViewModel. Like so:

val viewModelProvider = ViewModelProvider(
     this, 
     ViewModelProvider.AndroidViewModelFactory(application)
)
viewModel = viewModelProvider[MainViewModel::class.java]

If you are using the fragment library from Jetpack

implementation "androidx.fragment:fragment-ktx:1.2.5"

You can use property delegation like so:

val viewModel: ViewModel by viewModels()

Post a Comment for "How To Instantiate Viewmodel That Extends Androidviewmodel?"