Android 应用将数据从 ViewModel 传递到 ViewModel
Android App pass data from ViewModel to ViewModel
我有一个餐厅应用程序,其中包含两个主要片段,每个片段都有自己的视图模型 -
LiveList 片段和视图模型,它从 Internet 检索餐馆列表并将它们显示在 recyclerView 中。
显示数据库中保存的餐厅并处理所有数据库交互的 SavedList 片段和视图模型
我想要做的是当用户单击 LiveList 中每家餐厅旁边的星号时,该餐厅将被添加到我的 SavedList 数据库中。
我可以:
1- 只需从 LiveListViewModel 中调用 SavedListViewModel.addRestaurant 的引用 ?
2- 需要更改为共享 ViewModel 方法吗?
3-让addRestaurant成为LiveList可以访问的接口?
4- 让 SavedListViewModel 观察来自 LiveListViewModel 的一段 Livedata 并将该 Livedata 绑定到所选餐厅?
5- none 这些方法可行吗?
在activity范围中创建一个共享视图模型。
viewModels 为您提供范围为当前片段的 ViewModel 实例。这对于不同的片段会有所不同。
activityViewModels 为您提供范围为当前 activity 的 ViewModel 实例。因此,实例将在同一 activity.
中的多个片段中保持相同
https://developer.android.com/codelabs/basic-android-kotlin-training-shared-viewmodel#4
我有一个餐厅应用程序,其中包含两个主要片段,每个片段都有自己的视图模型 -
LiveList 片段和视图模型,它从 Internet 检索餐馆列表并将它们显示在 recyclerView 中。
显示数据库中保存的餐厅并处理所有数据库交互的 SavedList 片段和视图模型
我想要做的是当用户单击 LiveList 中每家餐厅旁边的星号时,该餐厅将被添加到我的 SavedList 数据库中。
我可以:
1- 只需从 LiveListViewModel 中调用 SavedListViewModel.addRestaurant 的引用 ?
2- 需要更改为共享 ViewModel 方法吗?
3-让addRestaurant成为LiveList可以访问的接口?
4- 让 SavedListViewModel 观察来自 LiveListViewModel 的一段 Livedata 并将该 Livedata 绑定到所选餐厅?
5- none 这些方法可行吗?
在activity范围中创建一个共享视图模型。
viewModels 为您提供范围为当前片段的 ViewModel 实例。这对于不同的片段会有所不同。
activityViewModels 为您提供范围为当前 activity 的 ViewModel 实例。因此,实例将在同一 activity.
中的多个片段中保持相同https://developer.android.com/codelabs/basic-android-kotlin-training-shared-viewmodel#4