【问题标题】:How do I store a data from a fragment so it can be reuse in a MVVM architecture?如何存储片段中的数据,以便在 MVVM 架构中重用?
【发布时间】:2020-07-30 10:55:35
【问题描述】:

我知道一个 Activity/Fragment 必须创建一个 ViewModel,而 ViewModel 可以从一个 ViewModelFactory 中创建。 ViewModel 本身正在使用一个数据存储库来处理来自数据库或网络的数据。而且 ViewModel 不是单例。

例如,我有一个活动,它有两个片段,片段 A 和片段 B,我只能一个一个地访问它们。在片段 A 中,我从来自网络或数据库的存储库中加载了一些数据。当我导航到片段 B 时,片段 A 中的数据丢失了,因此我必须从网络或数据库中将其加载回来,这需要时间。因此,我想将我的数据存储在运行时的某个位置。

我的问题,解决这个问题的最佳方法是什么?可以在仓库中创建单例吗?

【问题讨论】:

    标签: android android-fragments mvvm


    【解决方案1】:

    您需要使用共享视图模型,即在您的片段之间共享的视图模型,并且可以在某些片段之间导航。
    实施取决于您在项目中使用的内容。您可以在 Activity 中创建一个 ViewModel 并从您的 Fragment 访问它们并将共享数据放入此 ViewModel 中。或者,如果您使用导航组件,则可以为每个导航图共享一个 ViewModel。并且使用 dagger 和 koin 您可以为 ViewModel 定义一个服装范围来生存。查看这些链接:

    Share data between fragments
    Share data between fragments with shared viewModel

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      相关资源
      最近更新 更多