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);
これら2つの違いが原因でtryAdapter
失敗するが、adapter
インスタンスはそのままにしておくことを誰か教えてもらえますか?