目前我正在拔出所有联系人并在ListView中显示它。接下来,对于列表中的每个联系人,我使用自己的表进行检查,如果他是注册用户,则显示一个图标。到目前为止,我尝试了以下方法:
1)在适配器的getView()中,对于每一行,我通过传入联系人ID在我自己的表上调用查询。减慢了ListView的滚动速度,可能会遇到内存问题。
2)在getView()中,对于每一行,我添加联系人ID&图像视图到队列,它以1为1执行查询并显示图标。这种分类有效但有时显示变得怪异并随机显示图标然后消失。
3)我使用了MatrixCursor并尝试加入数据,但步骤1中的查询也被调用,因此再次降低显示速度。
任何人都可以评论或提出更好的建议会很棒!感谢。
答案 0 :(得分:0)
在列表视图效果上查看Google IO视频:http://www.youtube.com/watch?v=wDBM6wVEO70
基本上,你需要做的是两件事:
实现您自己的CursorAdapter,它保存您的数据并将其作为标记附加到项目。这将加快滚动速度,只查询一次数据。否则,每当项目进入视图时,您就会点击桌面。关于处理项目的Android操作系统非常有用..这就是所谓的视图模式,请参见此处讨论:android listview viewholder. when to use it, and when not to我没有找到更好的例子,但是你得到了一个想法......
我会将您数据库中的项目缓存到List中,这样您就不必查询每个项目了。