Android 游标适配器的用途是什么?
现在,我使用ListView和ArrayAdapter显示来自sqlite的数据。我以前的实现是从db中检索并设置为arrayAdapter。然后在listview中设置适配器Android 游标适配器的用途是什么?,android,sqlite,listview,android-listview,Android,Sqlite,Listview,Android Listview,现在,我使用ListView和ArrayAdapter显示来自sqlite的数据。我以前的实现是从db中检索并设置为arrayAdapter。然后在listview中设置适配器 但现在正在考虑转向高效适配器。如果sqlite有数千条记录呢?我知道我必须先检索前20条记录,然后根据scroll检索下一条记录。我想知道我可以通过使用游标适配器来实现吗?或者我可以知道更好的解决方案。您可以使用一个线程从数据库检索数据并将其放入地图或列表中。然后,当您需要数据时,如从地图滚动读取时的每20条记录。这可能
但现在正在考虑转向高效适配器。如果sqlite有数千条记录呢?我知道我必须先检索前20条记录,然后根据scroll检索下一条记录。我想知道我可以通过使用游标适配器来实现吗?或者我可以知道更好的解决方案。您可以使用一个线程从数据库检索数据并将其放入地图或列表中。然后,当您需要数据时,如从地图滚动读取时的每20条记录。这可能对你有帮助 只需在数据库和视图之间创建另一层
首先,我使用CursorAdapter的主要原因是,如果sqlite中的数据发生更改,内容将自动更改。如果下面有什么变化,我不需要考虑刷新UI。 其次,sqlite的
查询
和列表视图
已经进行了一些您想要的优化。默认情况下,sqlite不会给出执行查询时的所有数据。它使用一个滑动窗口逐步给出查询结果。而且listview
也不会一次绘制所有项目,而是在用户向下滚动时绘制项目
希望这会有所帮助,尽管这并不能准确回答您的问题,但当数据库/服务器响应中有数千条记录或从中获取信息时,最好的做法是使用“延迟加载”技术,基本上就是向用户显示数据集块,例如,每次显示50个元素,不需要加载甚至可能不使用的950个元素,这种技术也大大提高了应用程序响应和内存,现在如何实现它实际上取决于您自己,有一个BaseAdapter类可以自己完成,或者游标/数组适配器的良好实现也可以完成这一任务 值得一提的是,游标有一个优点: Cursor允许Android通过检索资源更高效地管理资源 以及根据需要释放行和列值 希望有帮助 问候