2 回答

TA貢獻1865條經驗 獲得超7個贊
重復調用cursor.moveToNext()直到返回false,并提取其間的數據。
Cursor cursor = datahandler.fetch();
do {
// extract data from cursor for current row
} while (cursor.moveToNext());
為了防止出現空值,Cursor您還應該調用 -- 并測試 -- 的返回值moveToFirst()。moveToFirst()您在檢索 時調用Cursor,但從未測試結果。
if (cursor.moveToFirst()) {
do {
// extract data from cursor for current row
} while (cursor.moveToNext());
}

TA貢獻1890條經驗 獲得超9個贊
從數據庫返回列表中的所有項目。
public List<Records> fetch() {
List<Records> records = new ArrayList<Records>();
dh = this.getReadableDatabase();
Cursor cursor = this.dh.query(TABLE_INVOICE, new String[]{ITEM_NAME, ITEM_PRICE, QTY, ITEM_TAX, BILL_NO, DATE, CUST_NAME, CUST_ADDR, INVOICE_TOT, GRAND_TOT, TIME}, null, null, null, null, null);
if ( cursor.moveToFirst()) {
do {
ITEM_NAME = cursor.getString(0).trim();
ITEM_PRICE = cursor.getString(1).trim();
QTY = cursor.getString(2).trim();
ITEM_TAX = cursor.getString(3).trim();
records.add(new Records(ITEM_NAME,ITEM_PRICE,QTY,ITEM_TAX));
} while (cursor.moveToNext());
}
return records;
}
然后List<Records> records = db.fetch(); 循環記錄列表
添加回答
舉報