这是一个令人头痛的问题我从很长时间尝试它,但仍然没有这个代码给我错误
MainActivity.class
try{
handler = new DataHandler(this);
handler.open();
c = handler.getAllMainData();
c.moveToFirst();
while(!c.isAfterLast()){
CampaignId.add(c.getInt(0), null);
CampaignName.add(c.getString(1));
Message.add(c.getString(c.getColumnIndex("message")));
StartDate.add(c.getString(c.getColumnIndex("start_date")));
Repeat.add(c.getString(c.getColumnIndex("repeat")));
c.moveToNext();
}
handler.close();
}
catch(Exception e){
Log.d("Error",e.toString());
}
DataHelper类中的getAllMainData
public Cursor getAllMainData(){
String sql= "SELECT * FROM "+CampaignMain_TABLE;
return db.rawQuery(sql, null);
}
错误是 java.lang.IndexOutOfBoundsException:索引1无效,大小为0
选择*来自campaign_name将检索更多列,然后我在MainActivity中选择//我想这不应该是问题而只是为了变得更具描述性
答案 0 :(得分:0)
你究竟在哪一行获得IndexOutOfBoundsException异常?你确定你的光标不是空/空吗?我认为它应该是这样的:
if (cursor.moveToFirst()) {
do {
// Read data from cursor
} while (cursor.moveToNext());
}
答案 1 :(得分:0)
以下是您的解决方案:
while (cursor.moveToNext()) {
// Read data
}