Android游标,moveToNext()错误

Android游标,moveToNext()错误,android,cursor,Android,Cursor,为什么应该在getString()之后给出moveToNext()?如果不是,应用程序就会崩溃 for(int i=0;i<c.getCount();i++) { result+= c.getString(c.getColumnIndex("productname")); c.moveToNext(); } for(int i=0;i 请参阅一些Noob学生关于语法的回答。您没有在上面的代码中使用“i”索引来指定要从中读取的行-仅指定连

为什么应该在getString()之后给出moveToNext()?如果不是,应用程序就会崩溃

for(int i=0;i<c.getCount();i++)
{
    result+= c.getString(c.getColumnIndex("productname"));                 
    c.moveToNext();
}
for(int i=0;i

请参阅一些Noob学生关于语法的回答。您没有在上面的代码中使用“i”索引来指定要从中读取的行-仅指定连接product Name字符串的次数。它读取相同的行n次

这个问题有一个很好的答案来解释光标是什么。我认为它是一个临时表(电子表格)

movetoNext()将“光标”(想想突出显示的电子表格矩形)移动到“productname”列的下一行(下一个产品的名称)

由于很多原因,它可能会崩溃,可能productname不是游标“c”中的一列。下面是一个关于调试的问题,可能会很有用
旧的步骤到然后检查最后一个异常/错误方法应该可以做到这一点。

在调用
c.getString
之前,必须
c.moveToNext();
if (c.moveToFirst()){
   while(!c.isAfterLast()){
      String productNames[i] = c.getString(c.getColumnIndex("productname"));
//Maybe a string array is better than one long string?
      i++
      c.moveToNext();
   }
}
c.close();