加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 05:06:37 所属栏目:Java 来源:网络整理
导读:这是我的再次,有 Android的sqlite问题 我目前得到一个“CursorIndexOutOfBoundsException:请求索引1,大小为1” 但是,我有索引-1的这个异常,然后插入了一个cursor.moveToFirst(),然后我用索引0,然后做了cursor.moveToNext(); 我想用我的代码做什么?我想要一
这是我的再次,有 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};

解决方法

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

尝试删除c.moveToNext();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读