Android 2.3.3 问题很简单。该循环迭代了 12 次,而按照我的逻辑它应该迭代 11 次。有人可以发现问题吗...我忽略了什么?
c = db.getData();
if(c.getCount() > 0)
{
c.moveToFirst();
System.out.println("Cursor Values are ::: "+c.toString());
int columCount = c.getColumnCount();
System.out.println("Column Count is ::: "+columCount);
boolean isFound = false;
do
{
for(int iteCount = 0; i < columCount; iteCount++)
{
System.out.println("Loop ::: "+iteCount);
String tempString = c.getString(iteCount);
System.out.println("Item in TempString is :::"+tempString);
if(tempString != null && tempString.equalsIgnoreCase(tempCommand))
{
alFirstIndex.remove(0);
System.out.println(c.getString(c.getColumnIndex("Command")));
alFirstIndex.add(0, c.getString(c.getColumnIndex("Command")));
isFound = true;
break;
}
}
System.out.println("Out of For Loop");
if(isFound)
{
break;
}
}while(c.moveToNext());
这是 logcat :::: 的输出
12-22 09:13:08.219: I/System.out(25300): Column Count is ::: 11
12-22 09:13:08.219: I/System.out(25300): Loop ::: 0
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::ADD
12-22 09:13:08.219: I/System.out(25300): Loop ::: 1
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::add
12-22 09:13:08.219: I/System.out(25300): Loop ::: 2
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::and
12-22 09:13:08.219: I/System.out(25300): Loop ::: 3
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::had
12-22 09:13:08.219: I/System.out(25300): Loop ::: 4
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::ad
12-22 09:13:08.219: I/System.out(25300): Loop ::: 5
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::anddd
12-22 09:13:08.219: I/System.out(25300): Loop ::: 6
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::anndd
12-22 09:13:08.219: I/System.out(25300): Loop ::: 7
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null
12-22 09:13:08.219: I/System.out(25300): Loop ::: 8
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null
12-22 09:13:08.219: I/System.out(25300): Loop ::: 9
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null
12-22 09:13:08.219: I/System.out(25300): Loop ::: 10
12-22 09:13:08.219: I/System.out(25300): Item in TempString is :::null
12-22 09:13:08.219: I/System.out(25300): Loop ::: 11
12-22 09:13:08.219: E/CursorWindow(25300): Bad request for field slot 0,11. numRows = 18, numColumns = 11
columnCount = 11
, 循环开始i = 0
并应该迭代到i < columCount
这意味着它应该迭代11次,但是为什么它再次进入FOR循环并打印Loop ::: 11