光标在填充到ArrayList时给出错误

时间:2014-08-08 14:12:18

标签: android arraylist cursor

这是一个令人头痛的问题我从很长时间尝试它,但仍然没有这个代码给我错误

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中选择//我想这不应该是问题而只是为了变得更具描述性

2 个答案:

答案 0 :(得分:0)

你究竟在哪一行获得IndexOutOfBoundsException异常?你确定你的光标不是空/空吗?我认为它应该是这样的:

if (cursor.moveToFirst()) {
    do {
        // Read data from cursor
    } while (cursor.moveToNext());
}

答案 1 :(得分:0)

以下是您的解决方案:

while (cursor.moveToNext()) {
// Read data
}