0

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

4

1 回答 1

6

在循环:

for(int iteCount = 0; i < columCount; iteCount++)

你需要使用iteCountnot i

for(int iteCount = 0; iteCount < columCount; iteCount++)
于 2012-12-22T04:02:03.643 回答