我正在尝试使用 SimpleCursorAdapter 来填充 ListView。但是,构造 SimpleCursorAdapter 让我的编译器抛出异常。最奇怪的是,在我的应用程序的早期,我使用了几乎完全相同的结构并取得了巨大的成功。这就是我遇到的问题:
cursor = db.rawQuery("SELECT " + DatabaseHelper.KEY_AMOUNT
+ ", " + DatabaseHelper.KEY_DATE
+ " FROM " + DatabaseHelper.TABLE_HISTORY
+ " WHERE " + DatabaseHelper.KEY_ID
+ "=?",
new String[]{""+tenantId});
cursor.moveToFirst();
try {
tryAdapter = new SimpleCursorAdapter(
this,
R.layout.history_item,
cursor,
new String[] {DatabaseHelper.KEY_AMOUNT, DatabaseHelper.KEY_DATE},
new int[] {R.id.historyPaymentColumn, R.id.historyDateColumn});
} catch (Exception e) {
e.printStackTrace();
}
这是我之前在应用程序中使用的 SimpleCursorAdapter 的实例(有效的那个):
cursor = db.rawQuery("SELECT _id, firstName, lastName, phone FROM phonebook", null);
adapter = new SimpleCursorAdapter(
this,
R.layout.phonebook_item,
cursor,
new String[]{"firstName", "lastName", "phone"},
new int[] {R.id.firstName, R.id.lastName, R.id.phone});
setListAdapter(adapter);
谁能告诉我这两者之间究竟有什么区别导致tryAdapter
失败但adapter
保持实例不变?