i have bee practicing Kotlin mvvm and on creating view model i got an error of i see lots of stack overflow solutions but couldn't find solution
Cannot create an instance of class - View Model
here is my model class
public class MainViewModel(application: Application,
) : AndroidViewModel(application) {
fun first(): LiveData<Boolean> {
return database
.locationDao()
.getLocationFlow()
.flowOn(Dispatchers.IO)
.map {
when {
it.isEmpty() -> {
true
}
else -> false
}
}.asLiveData()
}
}
MainActivity
class MainActivityK : AppCompatActivity() {
lateinit var viewModel:MainViewModel
oncreate method
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
LocalUtil.setLocal(this)
mainBinding = ActivityMainKBinding.inflate(layoutInflater)
setContentView(mainBinding.root)
viewModel=ViewModelProvider(this).get(MainViewModel::class.java)
thanks.
You should obtain MainViewModel like:
viewModel = ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(MainViewModel::class.java)
instead of
viewModel=ViewModelProvider(this).get(MainViewModel::class.java)