【问题标题】:Moving android sql lite cursor forward向前移动 android sqlite 光标
【发布时间】:2015-04-24 16:45:15
【问题描述】:

我的应用程序中有一个 Sql lite 表。

我想添加一个游标来解析表格,使其从当前位置向前移动。
主要思想是更新所有下一行而不是前一行。

如果需要,任何人都可以给我一个示例光标来使用任何循环吗?

【问题讨论】:

    标签: android android-sqlite cursors


    【解决方案1】:
    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()

    【讨论】:

    • 即使在这里,我认为它会解析所有行,对吧?还是错了?
    • 你是对的。要从后面的行解析,您需要遵循@Arash 的建议,并在我的示例的第二行使用cursor.moveToPosition(position) 而不是cursor.moveToFirst()。要仅解析选定的条目,您需要在每个条目上调用 cursor.moveToPosition()。您还想在第一个实例中调整您的query(),以便您只从一开始就获得必要的信息。
    • 实际上你的第二行可以被删除,因为你在if条件下调用moveToFirst()
    • @miav 你确定吗?我理解 if 条件中的语句只是检查cursor 是否有第一行,而不是实际移动到第一行。
    • 当然 - 如果光标非空,moveToFirst() 移动到第一个并返回 true(否则,你会得到 false)。我想你也可以摆脱getCount() > 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    相关资源
    最近更新 更多