【发布时间】:2019-05-14 15:12:24
【问题描述】:
我正在学习 MVVM。我正在阅读关于 MVVM 的示例代码https://codelabs.developers.google.com/codelabs/android-room-with-a-view。有一个 Book 实体,它已从如下活动更新:
Book book = new Book();
book.setName(x);
但我认为我们不应该在 View 层中有模型实例,我们应该在 ViewModel 中执行此操作,而不是在 View 中。视图中类似于以下代码:
MyViewModel viewModel = ViewModelProviders.of(this).get(MyViewModel.class);
viewModel.setBookName(x);
我的问题是我们可以在 View 中实例化一个实体吗?这样做的正确方法是什么?
【问题讨论】:
-
你说得对,
View不应该直接与Models协调,这就是ViewModel出现在图片中的原因。 (尽管您编写的语法不是启动 ViewModel 的建议方式) -
通过实例化实体,你的实际需求是什么?
-
你应该只更新视图模型中的模型类。