CursorIndexOutOfBoundException:指标1的要求,大小为1 [英] CursorIndexOutOfBoundException: Index 1 requested, with a size of 1

查看:179
本文介绍了CursorIndexOutOfBoundException:指标1的要求,大小为1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我一次,有使用SQLite问题为Android

目前,我得到一个 CursorIndexOutOfBoundsException :指标1的要求,尺寸为1
不过,我有这个例外与指数-1,那么插入 cursor.moveToFirst()然后我有这个索引为0,然后做光标。 moveToNext();
我想用我的code呢?我想所选项目的信息(这就是为什么selectionArgs两个在那里与sQueryid。我在做什么错了?

 光标C = a.managedQuery(URI,
            投影,投影//
            _ID =?,//选择字符串
            新的String [] {} sQueryid,//选择ARGS字符串数组
            DepotTableMetaData.DEFAULT_SORT_ORDER); //排序
    c.moveToFirst();
    c.moveToNext();
    INT IQR code = c.getColumnIndex(ContentProviderMetaData.DepotTableMetaData.ITEM_QR code);
    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);
        //收集值
        串ID = c.getString(的Integer.parseInt(queryid.toString()));        字符串名称= c.getString(INAME);
        串金额= c.getString(iamount);
        字符串单位= c.getString(IUNIT);
        字符串PPU = c.getString(IPPU);
        字符串总= c.getString(ITOTAL);
        字符串评论= c.getString(icomment);
        字符串QR code = c.getString(IQR code);        的String []信息=新的String [] {ID,名称,数量,单位,PPU,总,评论,QR code};


解决方案

moveToFirst 带你到第一个(也是唯一一个)结果。下一次调用 moveToNext 带你到第二个结果(指数1)不存在。

尝试删除 c.moveToNext();

it's me once more, having problems with sqlite for Android

I currently get a "CursorIndexOutOfBoundsException: Index 1 requested, with a size of 1" However, I had this exception with Index -1 then inserted a cursor.moveToFirst(), then I had this with index 0 , then did cursor.moveToNext(); What I wanna do with my code? I want the information of a selected item (that's why the selectionArgs are there with sQueryid. What am I doing wrong?

    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};

解决方案

moveToFirst takes you to the first (and only) result. The next call to moveToNext takes you to the second result (index 1) which doesn't exist.

Try removing the c.moveToNext();

这篇关于CursorIndexOutOfBoundException:指标1的要求,大小为1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆