在将数据绑定到RecyclerView之前从数据库获取数据并放入ArrayList是否更好?

时间:2016-07-21 07:17:26

标签: android android-recyclerview simplecursoradapter

我想使用数据库填充RecyclerView。目前没有用于使用数据库填充RecyclerView的内置适配器,我使用了Shywim的CursorRecyclerAdapter。我已经创建了一个示例应用程序来测试它,它运行良好。我不喜欢的功能是在结果集中有一个_id列,并在每个数据库操作上调用swapCursor(),主要是插入和删除。使用SimpleCursorAdapter时,这与ListView相同。我的查询是如果我使用ArrayList作为数据集而不是直接使用Cursor。

这样做的好处(我的假设):

  1. 结果集中不再需要_id列。
  2. 可以从数据库中获取数据,将其放入ArrayList并关闭游标。
  3. 无需在每个数据库操作上调用swapCursor(),因为我可以添加/删除ArrayList中的指定元素并调用notifyDataSetChanged()

    我不知道swapCursor()notifyDataSetChanged()背后的确切逻辑。因此,无法确定哪一个重量轻,效率高。

  4. 如果有人经历过此或之前已经这样做过,请清除我的疑虑。任何更正和建议都是最受欢迎的。

1 个答案:

答案 0 :(得分:-1)

根据我的理解,使用数组列表和自定义适配器是更好的方法。

请参阅以下某些情况:

1)每次交易后光标都会关闭,因此数据库将顺利运行。

2)由于您可以关闭操作,因此它将永远不会生成游标未关闭的异常。

3)您可以轻松修改每一行的视图,并根据您的选择管理自定义适配器。

还有很多其他原因,但简而言之,根据我的理解,定制适配器比光标适配器更好。