我正在Android中执行标准SQL查询:
String selection = "SELECT phraseA, phraseB FROM TableXYZ";
Cursor c1;
c1 = myDbHelper.myDataBase.rawQuery(selection,null);
c1.moveToNext();
while(!c1.isLast()){
toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1);
c1.moveToNext();
}
c1.close();
表非常小,返回的stirngs数小于40. Toplist是一个ArrayList。它被放入ListView.To据我所知,这应该显示我40个字符串。现在,会发生什么是显示字符串,然后出现另一个空的ListView字段。我不知道怎么做。我认为我的迭代可能是错误的,但我无法找到它的错误。
答案 0 :(得分:0)
你不是总是跳过最后的结果吗?我认为您需要:while(!c1.isAfterLast())
以防止跳过最后一项。
此行还有语法错误:
toplist.add("Phrase: "+c1.getString(0)+" "+c1.getString(1);
你错过了一个“)”字符。
至于你的问题,你没有显示足够的代码来真正看出问题所在。您确定您没有在代码中的其他位置向ArrayList添加任何空值吗?您在此处显示的是如何填充数组列表,而不是填充ListView的方式。显示ListView代码。
在此步骤之后附加调试器以查看ArrayList包含的内容,以查看错误是在代码的这一部分还是其他地方,这也是相当简单的。或者就此而言,即使将ArrayList大小打印到LogCat也有助于调试它。