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(); 循环记录列表
添加回答
举报