SQLite data to a RecyclerView



该应用程序在SQLite数据库中具有数据。UI 主要是回收器视图。问题是如何最好地将数据从数据库传输到UI,同时保持主线程?

我最初计划使用CursorLoader,ContentProvider和RecyclerView。但是,环顾四周,RecyclerView似乎没有对Cursor提供的数据的开箱即用支持。当。

然后给我留下了一些其他选择......

  1. AsyncTask 以加载数据,将其放入模型对象中,然后传递到回收器视图适配器中。除了丑陋之外,它对配置更改不友好。

  2. 一个自定义加载程序,用于从 SQL 加载数据并将其推送到模型对象中。

  3. 使用游标
  4. 加载器,当它返回游标时,循环访问它以将数据推送到模型对象中。我怀疑这会发生在主线程上,可能会损害性能。

  5. 使用 Otto 发送请求消息以请求数据,然后通过返回消息返回模型对象集合。可能有~500个对象,所以我想我可能宁愿滥用Otto这样做。

如果我使用的是模型对象的集合而不是光标,则我认为对 ContentProvider 的好处较少,并且我还失去了 UI 在数据更改时自动刷新的能力(这可能很有用)。

这些选择都没有多大吸引力,有没有更好的方法?该应用程序承受着时间压力,因此无论它是什么,都需要相当快地实施。不幸的是,UI需要水平滚动并且仅针对棒棒糖,因此RecyclerView似乎比ListView更好。

使用这个简单的适配器 https://gist.github.com/Shywim/127f207e7248fe48400b,或者你可以使用android.support.v17.leanback.widget.ItemBridgeAdapterandroid.support.v17.leanback.widget.CursorObjectAdapter,但为什么要让自己的生活更难呢?

最新更新