【问题标题】:Android App pass data from ViewModel to ViewModelAndroid App 将数据从 ViewModel 传递到 ViewModel
【发布时间】:2022-01-21 23:38:10
【问题描述】:

我有一个餐厅应用程序,其中包含两个主要片段,每个片段都有自己的视图模型 -

LiveList 片段和视图模型,用于从 Internet 检索餐厅列表并将其显示在 recyclerView 中。

SavedList 片段和视图模型,显示数据库中保存的餐厅并处理所有数据库交互

我想要做的是当用户单击 LiveList 中每个餐厅旁边的星号时,该餐厅将被添加到我的 SavedList 数据库中。

我可以:

1- 只需从 LiveListViewModel 调用 SavedListViewModel.addRestaurant 的引用?

2- 需要更改为共享 ViewModel 方法吗?

3- 让 addRestaurant 成为 LiveList 可以访问的接口?

4- 让 SavedListViewModel 观察来自 LiveListViewModel 的一段 Livedata 并将该 Livedata 绑定到所选餐厅?

5- 这些方法都不可行?

【问题讨论】:

    标签: android database kotlin viewmodel android-livedata


    【解决方案1】:

    活动范围中创建共享视图模型。

    viewModels 为您提供范围为当前片段的 ViewModel 实例。这对于不同的片段会有所不同。

    activityViewModels 为您提供了当前活动范围内的 ViewModel 实例。因此,该实例将在同一活动中的多个片段中保持相同。

    https://developer.android.com/codelabs/basic-android-kotlin-training-shared-viewmodel#4

    【讨论】:

    • 谢谢,我发现了,但不确定它是否会起作用,因为我当前的 SavedListViewModel 需要一个数据库对象,因此需要一个 ViewModelFactory - 我将如何使用 by activity ViewModels 方法来实现它?跨度>
    猜你喜欢
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多