Android - SimpleCursorAdapter抛出异常
问题描述:
我想使用SimpleCursorAdapter来填充ListView。但是,构造SimpleCursorAdapter让我的编译器引发了一个异常。最奇怪的是,在我的应用程序中,我几乎使用了几乎完全相同的结构来取得巨大成功。这就是我有问题:Android - 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
实例不变?
答
我无法确定,因为您还没有发布您的Logcat
输出结果,但查看您选择的列名称,似乎您没有在投影中包含名为_ID
的列。您传递给CursorAdapter
的任何Cursor
都必须包含名为“_id”的列,否则该类将不起作用。
+0
这样做。谢谢! – 2012-03-07 21:14:38
它为什么不起作用?什么是例外?所以你最好在这里发布'Logcat'输出。 – 2012-03-07 04:45:42