【发布时间】:2015-04-24 16:45:15
【问题描述】:
我的应用程序中有一个 Sql lite 表。
我想添加一个游标来解析表格,使其从当前位置向前移动。
主要思想是更新所有下一行而不是前一行。
如果需要,任何人都可以给我一个示例光标来使用任何循环吗?
【问题讨论】:
标签: android android-sqlite cursors
我的应用程序中有一个 Sql lite 表。
我想添加一个游标来解析表格,使其从当前位置向前移动。
主要思想是更新所有下一行而不是前一行。
如果需要,任何人都可以给我一个示例光标来使用任何循环吗?
【问题讨论】:
标签: android android-sqlite cursors
if (cursor.moveToFirst()) { //Replace this with cursor.moveToPosition(position) to iterate from that position to the end of your cursor, rather than from start to finish.
while (!cursor.isAfterLast()){
cursor.getInt(0); //get whatever information you require.
cursor.moveToNext();
}
if (!cursor.isClosed()) {
cursor.close();
}
}
有很多方法可以实现这一点。在上面的例子中,我首先检查以确保cursor 不为空,然后逐行遍历每一行,直到到达最后一行。完成后,我在cursor 上致电close()。
【讨论】:
cursor.moveToPosition(position) 而不是cursor.moveToFirst()。要仅解析选定的条目,您需要在每个条目上调用 cursor.moveToPosition()。您还想在第一个实例中调整您的query(),以便您只从一开始就获得必要的信息。
if条件下调用moveToFirst()。
cursor 是否有第一行,而不是实际移动到第一行。
moveToFirst() 移动到第一个并返回 true(否则,你会得到 false)。我想你也可以摆脱getCount() > 0。