现在,我使用ListView和ArrayAdapter来显示来自sqlite的数据。我的旧实现是从db检索并设置为arrayAdapter。然后在listview中设置适配器。
但现在考虑转向有效的适配器。如果sqlite有数千条记录怎么办?我知道我必须检索前20条记录,然后根据滚动检索下一项。我想知道我可以使用游标适配器获得该实现吗?或者我可以为这种情况找到更好的解决方案。
答案 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条记录的数据。它可能会帮助你。
在数据库和视图之间创建另一个层。