【问题标题】:RecyclerView item. Get data from multiple sourcesRecyclerView 项目。从多个来源获取数据
【发布时间】:2018-01-11 08:02:53
【问题描述】:

我制作了一个使用 RecyclerViev 并使用 ROOM 从 DB 获取数据的应用。

以前,构成行项目所需的所有数据都位于单个类中。例如,“User.class”有字段“name”“lastName”。当然,我有我的 RecyclerView 适配器的用户对象列表。我还制作了数据库,使用 ROOM 来存储我的数据。

现在我想扩展我的应用程序。每个 RecyclerView 行不仅应显示用户的姓名和姓氏,还应显示该用户的最后 3 个“订单”。所以我用一些字段创建了新的“订单”类,并为 ROOM 数据库正确注释它,并使用@ForeignKey 做了一些约束”

现在我有一个 RecyclerView、一个 RecyclerView 适配器、自定义行的单一布局和两个带有数据的类(也有两个 db 表)。形成将显示在 RecyclerView 中的对象的正确方法是什么,该对象具有来自用户数据库和订单数据库的数据?

【问题讨论】:

标签: android android-recyclerview android-room


【解决方案1】:

你可以创建一个新类,它包含你需要在 RecyclerView 适配器中使用的所有属性,并在其中使用这个类。此外,无需将新实体保存到数据库中。

另一种方法是使用两种信息源,而不像我上面建议的那样创建新的 POJO。只需将所有用户和订单信息传递给您的适配器,然后从每个来源中提取所需的信息。

我个人更喜欢第一种方法。此外,可能还有更好的方法,因此您可以进行更多调查。

【讨论】:

  • 是第一种实现MVVM模式的方法吗?
  • 不,不是。这只是构建所需数据的一种方式。当然,您可以轻松地将其集成到 MVVM 模式中。
  • 我不需要“简单而有效”的方法。我需要“谷歌顶级编码人员接受的最佳实践方法”哈哈。您对这种情况有何看法?
  • 可悲的是,我不是 Google 顶级开发者吗?如果您愿意,可以联系 Jake Wharton、Rebecca Franks、Cyril Mottier 和其他许多 Android GDE。我提出的解决方案并没有将这个简单的数据构造过程完全集成到 MVVM 模式中。您可以让您的 Activity 监听来自 ViewModel 的更新,在广播新更新之前,您可以在 ViewModel 中以建议的方式或在具有某些特定职责的单独类中构建数据(我不熟悉您的架构)。跨度>
猜你喜欢
  • 1970-01-01
  • 2019-02-05
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 2019-11-24
  • 1970-01-01
  • 2014-02-15
相关资源
最近更新 更多