CursorIndexOutOfBoundException:请求索引1,大小为1

Aee*_*ire 3 java sqlite android

这是我的再次,有Android的sqlite问题

我目前得到一个" CursorIndexOutOfBoundsException:索引1请求,大小为1"然而,我有这个异常与索引-1然后插入一个cursor.moveToFirst(),然后我有这个索引0,然后做了cursor.moveToNext(); 我想用我的代码做什么?我想要一个选定项目的信息(这就是为什么selectionArgs与sQueryid有关.我做错了什么?

    Cursor c = a.managedQuery(uri, 
            projection, //projection
            "_ID=?", //selection string
            new String[]{sQueryid}, //selection args array of strings
            DepotTableMetaData.DEFAULT_SORT_ORDER); //sort order
    c.moveToFirst();
    c.moveToNext();
    int iqrcode = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_QRCODE);     
    int iname = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_NAME);
    int iamount = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_AMOUNT);
    int iunit = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_UNIT);
    int ippu = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_PPU);
    int itotal = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_TOTAL);
    int icomment = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_COMMENT);


        //Gather values
        String id = c.getString(Integer.parseInt(queryid.toString()));

        String name = c.getString(iname);
        String amount = c.getString(iamount);
        String unit = c.getString(iunit);
        String ppu = c.getString(ippu);
        String total = c.getString(itotal);
        String comment = c.getString(icomment);
        String qrcode = c.getString(iqrcode);

        String[] info = new String[]{id,name,amount,unit,ppu,total,comment,qrcode};
Run Code Online (Sandbox Code Playgroud)

Jim*_*Jim 12

moveToFirst带你到第一个(也是唯一的)结果.下一次调用将moveToNext带您进入不存在的第二个结果(索引1).

尝试删除 c.moveToNext();