我想在列表中的Cursor中显示一些(5-ish)项目,并且我希望它与光标的内容保持同步(后者又指向数据库),但我不想使用ListViews。相反,我想填充一个普通的LinearLayout。
我似乎明白我需要创建一个自定义的CursorAdapter并覆盖newView()和bindView()方法。我不明白的是谁负责迭代游标的项目(CursorAdapter是否这样做?我的代码应该这样做吗?),每个项目的视图如何成为LinearLayout的父级,谁负责创建新的光标中新项目的视图或删除光标不再可用的项目的视图?
不知何故,我有一种预感,CursorAdapter已经完成了大部分工作,但我无法将拼图的所有部分组合在一起。我只是在newView()中膨胀行布局并直接将其添加到LinearLayout中吗?如果光标不再具有关联数据,如何删除行?
感谢您的帮助!
马努
答案 0 :(得分:1)
好吧,我会做以下事情:
简而言之就是这样。当然,稍后您可能希望对其进行优化,并保留旧视图并改为使用CursorAdapter.bindView,因此您不需要创建新的重型Java对象。
答案 1 :(得分:1)
CursorAdapter允许您导航大型列表,而无需将所有项目加载到内存中。如果你只是想要一小部分项目,那么我会在你的活动中迭代它们并相应地更新你的视图(添加视图,设置文本值,显示/隐藏等)。
答案 2 :(得分:1)
使用CursorLoader。如果您的内容发生变化,它会自动更新。