在ListActivity中使用包含大量行的SimpleCursorAdapter

时间:2011-12-01 00:53:56

标签: android

我正在开发我的第一个Android应用。我有ListActivity使用SimpleCursorAdapter()使用自定义布局填充列表。当行数变得非常大时,加载列表的有效方法是什么?

由于我是Android的新手,我不确定幕后会发生什么。假设我的结果集返回500行 - ListActivity只会渲染可见区域中的那些还是会尝试渲染所有500行?

我是否应该实施ListView.OnScrollListener来一次只加载25行?是否有某种内置的分页机制我还没有偶然发现?

3 个答案:

答案 0 :(得分:2)

不要担心数据集大小方面的效率,因为系统会进行必要的优化。 你可以在哪里使事情变得更加顺畅是加载光标:确保你使用LoaderManagerCursorLoader,因为现在不推荐使用SimpleCursorAdapter构造函数,因为它导致游标查询被运行在UI线程上(参见this)。

答案 1 :(得分:0)

我想您需要使用视图持有者模式来重用ListView行,请查看本教程http://www.vogella.de/articles/AndroidListView/article.html

答案 2 :(得分:0)

Android会根据需要创建并销毁ListView中的每个View,您不必担心它。就像Chunhui说的那样,ViewHolder模式也会有助于提高ListView的帧率,如果它感觉迟钝的话。