CursorIndexOutOfBoundException:指标1的要求,大小为1 [英] CursorIndexOutOfBoundException: Index 1 requested, with a size of 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屋!