mvvm中的Android ViewModel管理

斯蒂法诺·西亚诺(Stefano Siano)

我正在创建一个示例应用程序(Last-Mvvm),以使用Android数据绑定学习(并可能显示)mvvm模式的用法

我的ViewModel对象里面有一个活动。我还有一个RecyclerView适配器,其中包含一个项目的数组列表,这些项目将转换为另一个Viewmodel。我想将列表的状态保存在适配器内(用于旋转更改)。
所以:我应该在哪里保存它?活动里面?还是在活动的viewModel中?或者别的地方?

另外,还有另一件事并不清楚。直接从viewModel
执行rest调用(通过Retrofit)或数据库调用是否合适(因为我将使用接口),还是最好做成一个视图(活动)实现并执行所有调用的接口?

第十三届

我会尽力解释

第一所以:我应该在哪里保存它?活动里面?还是在活动的viewModel中?或者别的地方?

第二直接从viewModel执行rest调用(通过Retrofit)或数据库调用是否合适(因为我会使用接口),还是最好做成一个视图(活动)实现并执行所有调用的接口?

关于文章的例子

在下面的架构中,您可以看到OnClickListener和的OnLongClickListener实现RecyclerView架构图

  • 点线是一个链接
  • 实线是一种方法调用

这个怎么运作

  1. ViewHolderWrapper用作ClickListener的根视图ViewHolder取决于实现ViewHolderWrapper方式,可以替代HolderClickObservable或取决于SelectionHelperViewHolderWrapper可以手动突出显示所选项目。
  2. SelectionHelper负责保存选择状态并通知SelectionObserver更改。
  3. 侦听器(在这种情况下为适配器)负责突出显示所选项目和进行更新。

总结

第一您可以通过与方法活动恢复适配器状态onSaveInstanceState()onRestoreInstanceState()

第二您需要创建轻量级的ViewHolder,它仅负责绑定要查看的数据。可以在适配器或活动上执行操作。

另请参阅示例应用程序

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ViewModel中的不可观察模型对象是否针对Android中的MVVM体系结构?

如何在Android MVVM ViewModel中获取上下文

Android MVVM ViewModel和每个实体的存储库?

Android-MVVM中ViewModel状态的最佳做法?

在Android MVVM体系结构中从ViewModel显示对话框

在Android MVVM体系结构中从ViewModel显示对话框

Android MVVM中的服务和ViewModel-它们如何交互?

在MVVM架构中从ViewModel添加片段

Android的ViewModel和MVVM

如何使用Android导航而不绑定到ViewModel(MVVM)中的UI?

如何在MVVM Android中使用数据绑定处理ViewModel中的onClick或onTouch之类的事件

在ViewModel中处理数据,在MVVM中处理片段

Android MVVM-数据更改时更新ViewModel

无法在Android MVVM中创建ViewModel类的实例

如何通过VIEWMODEL从数据库(MODEL)中的Activity(VIEW)获取添加的对象的ID。Android,MVVM

在MVVM中,是否始终需要ViewModel?

在WPF MVVM中的ViewModel中设置SelectedTab

从MVVM中的ViewModel关闭视图

ViewModel中的UIElements的UserControl破坏了MVVM?

MVVM RaisePropertyChanged已在ViewModel或Model中更改?

MVVM设计:在ViewModel中阻止MessageBox

MVVM中的代码繁重的ViewModel

谁能解释一下在android中实现MVVM架构时如何使用ViewModel和LiveData

Android:MVVM 是否可以从 ViewModel 显示消息(toast/snackbar 等)

Android MVVM,您可以使用另一个 LiveData 对象观察 ViewModel 中的 LiveData 吗?

为 SettingsActivity 获取 ViewModel(MVVM,Android P)

在哪里保存 Android 的 MVVM 中的 ViewModel 状态?

仅当 ViewModel 中的某些变量更改时,在 MVVM Android 中显示对话框才会引发异常

Android、MVVM:在 ViewModel 中調用 ContentResolver