【问题标题】:MVVM : fetch data from server and notify itemMVVM:从服务器获取数据并通知项目
【发布时间】:2019-08-27 08:12:29
【问题描述】:

我将举一个例子来解释我的问题:在搜索屏幕中,我需要搜索一大堆电影。 我可以为每部电影添加书签,所以我需要在我的回收站中通知我的项目,这是我的问题

我是否需要将搜索到的每部电影都放入房间数据库中,然后使用 MVVM 和 DiffUtils 进行通知会很简单?

因为,当我使用 MVP 时,我用 MovieId 和一个布尔值作为书签创建了一个小型数据库,当用户为电影添加书签时,我在适配器中的项目中运行并通知相关项目。但是这个解决方案现在对于 MVVM 来说非常难看。

提前致谢

【问题讨论】:

    标签: android search mvvm android-room android-livedata


    【解决方案1】:

    仅对于搜索屏幕,您不需要将数据保存到本地数据库。取而代之的是,您可以将一个列表绑定到 RecyclerView 并使用 DiffUtils 使用 API 中的另一个列表对其进行更新。

    【讨论】:

    • 好的,但是如果我处理例如书签,那么我需要在数据库中存储哪些电影被添加了书签。那么,当我为一部电影添加书签时,我需要做什么?再次调用我的服务器并映射我的项目,这是不是有点矫枉过正?
    • 不用,只需更新 ui 并将 bookmars 存储在本地即可。
    • 是的,当您说“更新 UI”时,您的意思是获取 liveData,遍历项目并通过 id 找到项目并通知它。我用 mvp 做这个,但我认为它是样板:/
    • 另一种不太好的方法是使用自定义视图,它只知道元素的 id 并绑定到书签 livedata/db 源
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2017-06-20
    • 1970-01-01
    • 2020-04-11
    • 2014-12-09
    相关资源
    最近更新 更多