光标适配器的用途是什么?

时间:2014-01-26 06:26:21

标签: android sqlite listview android-listview

现在,我使用ListView和ArrayAdapter来显示来自sqlite的数据。我的旧实现是从db检索并设置为arrayAdapter。然后在listview中设置适配器。

但现在考虑转向有效的适配器。如果sqlite有数千条记录怎么办?我知道我必须检索前20条记录,然后根据滚动检索下一项。我想知道我可以使用游标适配器获得该实现吗?或者我可以为这种情况找到更好的解决方案。

3 个答案:

答案 0 :(得分:1)

首先,我使用CursorAdapter的主要原因是,如果sqlite中的数据发生变化,内容将自动更改。如果下面发生了某些变化,我不需要考虑刷新UI。

其次,query的sqlite和listview已经进行了一些你想要的优化。默认情况下,sqlite不会在执行查询时提供所有数据。它使用滑动窗口逐步提供查询结果。并且listview也不会同时绘制所有项目,它会在用户向下滚动时绘制项目。

希望这会有所帮助,但并不完全回答你的问题

答案 1 :(得分:1)

当在数据库/服务器响应中有数千条记录或者从中获取信息时,最佳做法是使用“延迟加载”技术,基本上它是做什么的,向用户显示数据集块例如,当时有50个元素,因此,不需要加载可能甚至不使用的950个元素,这种技术也大大提高了应用程序响应和内存,现在你如何实现它真的取决于你,有一个BaseAdapter类可以自己完成,也可以很好地实现Cursor / Array适配器。

重要的是要提到游标有一个优势:

  

Cursor允许Android通过检索更有效地管理资源   并按需释放行和列值。

希望它有所帮助!

问候!

答案 2 :(得分:0)

您可以参与一个从数据库中检索数据并放入Map或List的线程。然后,当您从Map滚动读取时需要每20条记录的数据。它可能会帮助你。

  

在数据库和视图之间创建另一个层。