Looking at the Google docs for ViewModel
, they show the below sample code on how to get a ViewModel
:
val model = ViewModelProviders
This answer is for Java but you can understand main point. Solution is that you need use ViewModelProvider because ViewModelProviders deprecated:
//Do not forget import it.
import androidx.lifecycle.AndroidViewModel;
ViewModelProvider.AndroidViewModelFactory(getApplication()).create(YourViewModel.class);
Example usage is:
YourViewModel yourViewModel = new ViewModelProvider.AndroidViewModelFactory(getApplication()).create(YourViewModel.class);
Also, do not forget update Gradle Dependencies: Check here for last versions of them
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.2.0'
annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.2.0'
!!! However, be careful because some answers recommend this solution but it did not work for me:
yourViewModel = new ViewModelProvider(this).get(YourViewModel.class);
Because when I used this way, I got below Error Message:
Caused by: java.lang.RuntimeException: Cannot create an instance of class com.canerkaseler.mvvmexample.ViewModel
@canerkaseler