无法创建 class 的实例 - ViewModel kotlin
Cannot create an instance of class - ViewModel kotlin
我一直在练习 Kotlin mvvm 并在创建视图模型时遇到错误,我看到很多堆栈溢出解决方案,但找不到解决方案
Cannot create an instance of class - View 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()
}
}
主要活动
class MainActivityK : AppCompatActivity() {
lateinit 变量 viewModel:MainViewModel
oncreate 方法
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)
谢谢。
您应该像这样获取 MainViewModel:
viewModel = ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(MainViewModel::class.java)
而不是
viewModel=ViewModelProvider(this).get(MainViewModel::class.java)
我一直在练习 Kotlin mvvm 并在创建视图模型时遇到错误,我看到很多堆栈溢出解决方案,但找不到解决方案
Cannot create an instance of class - View 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()
}
}
主要活动
class MainActivityK : AppCompatActivity() {
lateinit 变量 viewModel:MainViewModel
oncreate 方法
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)
谢谢。
您应该像这样获取 MainViewModel:
viewModel = ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(MainViewModel::class.java)
而不是
viewModel=ViewModelProvider(this).get(MainViewModel::class.java)