【问题标题】:Android Cursor, moveToNext() errorAndroid 光标,moveToNext() 错误
【发布时间】:2016-04-03 08:40:41
【问题描述】:

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

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

【问题讨论】:

  • 您必须先c.moveToNext();,然后才能调用c.getString

标签: android cursor


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

How to retrieve data from cursor class

查看一些 Noob Student 的关于语法的答案。您没有在上面的代码中使用“i”索引来指定您正在读取的行 - 只是连接产品名称字符串的次数。它读取同一行 n 次!

use of cursor in android

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

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

崩溃的原因有很多,也许产品名称不是光标“c”中的列。这是一个关于调试的问题,可能有用How to debug android project? 然后检查最后一个异常/错误方法的旧步骤应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多