2

由于我不在笔记本电脑旁,无法生成任何代码示例,因此我提前道歉,但希望我能清楚地回答我的问题。我有一个由 sqlite db 支持的 ListView(通过 SimpleCursorAdapter)。我正在尝试实现功能,因此该列表一次仅显示来自 db 查询的某些元素。我通过在 onCreate 中加载来自 db 的所有数据,并在启动列表时用首选元素 # 覆盖 SimpleCursorAdapter 的 getCount 方法来完成此操作。我还有一个按钮,可以将更多元素加载到列表中。这是通过更新 getCount 应该返回的计数来完成的。

这在添加更多列表视图行时效果很好,但是在单击按钮后,我看到列表中的内容出现了奇怪的行为。我看到重复的列表元素和不正确的元素内容,它们是在我的 bindview 方法中设置的。我假设这与覆盖 getCount 方法有关(我确信这是执行“Load Next 25”函数的更好方法),因为当我只显示整个 db 结果集时我没有看到这种行为并且不要覆盖该方法。

我想我的问题是,当您处理 SimpleCursorAdapter 时,覆盖 getCount 方法会导致 bindview 方法中的有趣行为吗?使用支持 ListView 的 db 查询结果实现此类功能的最佳方法是什么?

在此先感谢...如果需要,我可以在明天回到笔记本电脑时提供代码片段。

4

1 回答 1

5

我认为您可以通过简单地使用不同的查询来获得结果来存档。SQLite 支持LIMIT 运算符,它可以返回查询的前 n 个结果。

所以你的第一个查询看起来像这样:SELECT [your columns] FROM [your table] LIMIT 25

当按下加载下一个 25 个结果的按钮时,您将创建一个限制为 50 的新查询,并使用changeCursor () 方法将结果光标绑定到 SimpleCursorAdapter。

于 2011-03-09T09:39:12.920 回答