获取游标的行号
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);
}
从我的 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);
}