又是我,遇到了 Android 版 sqlite 的问题
我目前得到一个“CursorIndexOutOfBoundsException
:请求索引 1,尺寸为 1"
但是,我遇到了索引 -1 的异常,然后插入了一个cursor.moveToFirst(),
然后我用索引 0 得到了这个,然后做了cursor.moveToNext();
我想用我的代码做什么?我想要所选项目的信息(这就是为什么 selectArgs 与 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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)