获取游标的行号

get row numbers for a cursor

从我的 table 我想得到每一行的数量。例如,如果我有 5 行,我想得到 1、2、3、4、5。 我有这个方法,但我只得到数字 1:

private void listaAvvio() {
    SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
    final List<Dettaglio1> dettagli1 = new ArrayList<Dettaglio1>();
    String tabella_op = "SELECT .....";
    Cursor cur = db.rawQuery(tabella_op, null);
    while (cur.moveToNext()) {
        Dettaglio1 d1 = new Dettaglio1();
        d1.id = cur.getString(0);
        d1.FIELD1= cur.getString(1);
        d1.FIELD2= cur.getString(2);
        d1.FIELD3= cur.getString(3);
        d1.NUMBER_OF_SINGLE_ROW++;
        dettagli1.add(d1);
    }
    cur.close();
    db.close();
    ...
}

您在每次循环迭代中都创建了一个新的 Dettaglio1 对象,因此该对象中的 NUMBER_OF_SINGLE_ROW 始终相同。

您必须使用单独的变量来记住行号:

int row_no = 0;
while (cur.moveToNext()) {
    Dettaglio1 d1 = new Dettaglio1();
    d1.id = cur.getString(0);
    ...
    row_no++;
    d1.NUMBER_OF_SINGLE_ROW = row_no;
    dettagli1.add(d1);
}