我正试图了解Android上的MVVM。
假设我有这个简单的应用程序。(行为就像谷歌的联系人应用)
对于这个列表来说,如何实现mvvm模式非常清楚。
如果用户现在点击列表中的联系人,详细界面就会打开:ListActivity做putExtra("CONTACT", chosenContact),并且正在启动detailActivity。
DetailActivity正在获取这个ContactObject并创建这个视图。
在我的例子中,你可以看到DetailScreen并没有和仓库进行通信。它已经从意图中接收到了所有需要的数据。
问题:你应该为这个DetailActivity创建视图模型吗?
你是否应该为这个detailActivity创建一个视图模型?
在你的情况下,没有必要。
如果是,如果不需要连接到仓库,这个视图模型的任务是什么?
ViewModel对保持一个activityfragment的状态有很大的帮助。如果你有一个旋转器,或者一个复选框,或者任何其他可以改变的字段,比如用户插入的描述文本字段,viewmodel会帮助保持数据,即使用户旋转手机。
在google contacts应用中,我有删除联系人和添加联系人到收藏夹的选项。这些都应该在viewModel中完成,而这个ViewModel需要连接到一个存储库?
是的,你的UI会在你的viewmodel中调用一个fun,这个fun会发送到存储库等。
DetailActivity的任务,如呼叫、发送消息、视频通话或分享联系人,都需要上下文,所以据我了解MVVM应该在Activity类中完成?
没错,比如说,没有必要使用viewmodel来发送与其他应用分享联系人的意图。