android - 如何理解关于 viewmodel:activity 的 1:n 关系?
问题描述
我正在学习mvvm。研究这个,我有一个问题。我听说 viewmodel 可以有很多活动。关键是活动使用的一个视图模型共享它们的数据。因为我正在使用 koin 进行 DI。一个视图模型可以共享他们的数据吗?
private val mainViewModel : MainViewModel by viewModel()
onCreate(){
init()
.....
}
init(){
mainViewModel.searchItems.observe(this, Observer {
it?.let {item->
if(item.body !=null) {
Handler().postDelayed({
page++
adapterAddItem(item.body)
setVisiblity(viewDataBinding.progressBar, View.GONE)
}, 300)
}else{
showMessage(this,"No message")
setVisiblity(viewDataBinding.progressBar, View.GONE)
}
}
})
}
解决方案
首先,viewModel 没有活动,viewModel 不应该知道任何关于活动的信息。活动有视图模型。
对于共享数据,我会使用 Koin 的单曲。您可以注入到您的 viewModel 或活动中的那些。
推荐阅读
- jquery - 如何在 attr 中连接字符串
- python-3.x - NameError:未定义名称“setBranchCourse”
- node.js - CircleCI:$ npm 测试失败并且找不到已安装的包
- http - 永久删除 url 的两部分
- php - 使用 laravel 外部存储路径计划 SQL 备份
- python - Pandas:如何查找来自另一列的一列的唯一元素数量?
- python - 如何计算两个日期/时间之间的实例数
- flask - 如何让scrapy spider在flask app表单提交上运行?
- javascript - 如何使用 React/Redux 获取登录用户的用户名(或任何其他数据)
- python - 从finally块python访问try块中的变量