将光标位置移动到特定的ID

4

我的用户可以浏览一组记录。我在首选项中保存了上次查看的记录_ID,这样他们下次访问应用程序时就可以从离开的地方开始。

我拥有提取_ID字段的光标。然而,我不知道如何将光标移动到特定的行。以下光标函数需要一个特定的位置才能前往:

moveToPosition(int position)
move(int offset)

_ID可能不是连续的(由于删除等原因)。

有什么方法可以做到这一点吗?

2个回答

0

你能否只使用两个查询,一个用于 NextEmployee 吗?

SELECT MIN(RecordId) WHERE RecordId > currentRecordId

还有一个是PreviousEmployee

SELECT MAX(RecordId) WHERE RecordId < currentRecordId

然后用结果调用moveToPosition函数?

我也很困惑,为什么你要使用游标,为什么不根据记录ID获取数据?


Mike,我计划一次提取一堆记录。原因是用户将一次查看多个记录(一个接一个),所以我不想为每个记录执行数据库查询。我想获取一堆记录并在本地存储到游标中,这样当用户按下“下一个”和“上一个”按钮时,我只需移动游标位置并显示记录,而不是进行数据库查询。希望这有意义。 - OceanBlue

0
我也遇到了同样的问题,考虑创建一个HashMap来以_id作为键和Cursor中位置作为值
为了创建这个字典,我需要遍历一遍Cursor中的所有元素,然后就可以知道每个_id在Cursor中的位置(前提是它不能同时被修改,否则可能会检索错误的数据)。
你认为这种方法正确吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接