このガイドhttp://www.vogella.de/articles/AndroidSQLite/article.htmlに従って、追加のフィールドを処理するためのテーブルとコードを変更しました。しかし、リストが表示されているときは、価格ではなく項目項目のみが表示されます。私はそれがコードでどこにあるのかわかりません。複数のアイテムをsimple_list_item_1に表示
ここでは、アダプターへのアイテムのロード、getAllItemsの戻り値、およびアイテムの配列についてのコードを示します。アイテムにはID、アイテム、価格があります。ここで
List<Item> values = datasource.getAllItems();
// Use the SimpleCursorAdapter to show the
// elements in a ListView
ArrayAdapter<Item> adapter = new ArrayAdapter<Item>(this,
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
が、その背後にあるコードです:
public List<Item> getAllItems() {
List<Item> items = new ArrayList<Item>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_ITEMS,
null, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Item item = cursorToItem(cursor);
items.add(item);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return items;
}
private Item cursorToItem(Cursor cursor) {
Item item = new Item();
item.setId(cursor.getLong(0));
item.setItem(cursor.getString(1));
item.setPrice(cursor.getString(2));
return item;
}
それは値 "のみ表示されItem.itemsではない価格とIDが、私はなぜ表示されないのですか?あなたが行に複数のオブジェクトを持つようにしたい場合は
while (!cursor.isAfterLast()) {
items.add(cursor.getLong(0) + " " + cursor.getString(1) + " " + cursor.getString(1));
cursor.moveToNext();
}
の追加について、あなたのタスクは、はるかに大きいか、全体のプライベート項目cursorToItemのものがなければ
ArrayAdapterを拡張する独自のクラスを作成し、getView()メソッドをオーバーライドして両方のデータを取り出し、それぞれを独自のViewに配置する必要があります。 – FoamyGuy