我试图通过光标获取表中的所有IDs。该表有4行,当我尝试通过除0以外的任何索引访问游标时,应用程序崩溃。

伙计们,问题仍然存在,甚至c.getInt(0)都不起作用...我真的不知道我的错误在哪里???

logcat还提示错误可能来自

Toast.makeText(getApplicationContext(), "id="+dbd.getIDs()[0], Toast.LENGTH_SHORT).show();


我的意思是c.getint(0)返回id,c.getint(2)返回错误。这是代码:

public int []getIDs() {
    SQLiteDatabase db = this.getReadableDatabase();
    SQLiteCursor c = (SQLiteCursor) db.rawQuery("SELECT " + BaseColumns._ID + " FROM Demo ", null);

    int []r = new int[c.getCount()];
    c.moveToFirst();

    do{
        r[c.getPosition()] = c.getInt(0);
    }while(c.moveToNext());

    c.close();
    db.close();
    return r;
}

最佳答案

c.getInt(0)仅返回当前行第一列的值。
试试这个代码:

do{
int r = c.getInt(0);
Log.d("Your class name","id value = "+r);
}while(c.moveToNext());

10-07 19:19