Android:SQLite数据库——添加和游标

Android:SQLite数据库——添加和游标,android,database,cursor,Android,Database,Cursor,我试图理解游标是如何工作的,但我不理解这段代码的一部分-- (从机场起飞) 有人能解释一下这是怎么回事吗? 这就是我认为正在发生的事情——他正在向名为comment的列下的表中插入值。然后,他执行一个查询,将光标设置到他在表中添加注释的位置 然后我不明白他为什么要做cursor.moveToFirst()。光标不是指向他刚才添加的当前注释吗?我想他是想返回刚刚插入表中的注释,所以他不能删除moveToFirst()方法吗 返回游标对象的结果 cursor.moveToFirst(); 确保光

我试图理解游标是如何工作的,但我不理解这段代码的一部分-- (从机场起飞)

有人能解释一下这是怎么回事吗? 这就是我认为正在发生的事情——他正在向名为comment的列下的表中插入值。然后,他执行一个查询,将光标设置到他在表中添加注释的位置

然后我不明白他为什么要做cursor.moveToFirst()。光标不是指向他刚才添加的当前注释吗?我想他是想返回刚刚插入表中的注释,所以他不能删除moveToFirst()方法吗

返回游标对象的结果

 cursor.moveToFirst();
确保光标对象(或)光标中的第一个元素不是空的

 Comment newComment = cursorToComment(cursor);
调用另一个方法来遍历游标并执行该方法内部的逻辑编码,该方法返回
Comment
object

 cursor.close();
关闭光标,使其符合GC条件,memeory将是免费的

 return newComment;
将注释对象返回给调用者。

来自

查询返回:“一个游标对象,位于第一个条目之前。”

那么


说moveToFirst():“将光标移动到第一行。”

一旦“打开”光标,然后移动到第一(或其他)行,然后可以在关闭光标之前移动下一行。在isAfterLast()之前,这不是光标。moveToNext()吗?但是我没有看到任何证据表明他在遍历tableCursor对象,当您第一次获取它们时,它们没有默认位置。。。您需要显式地将其移动到某个位置(通常是第一行),然后才能操作数据。他保存他输入的注释的id,然后查询相同的id。
moveToFirst
还用于检查光标是否为空(即,如果返回
false
),我开始理解它,但我需要一点澄清。光标指向一行,告诉它正确吗?这是否意味着moveToFirst()指向光标指向的行中的第一列?行列表中的第一行。让我们看看您的查询返回了10行,moveToFirst,将光标放在第一行,从每一行您将通过get(..)操作获得列。
 cursor.close();
 return newComment;