【发布时间】:2012-03-12 13:40:10
【问题描述】:
我遵循本指南http://www.vogella.de/articles/AndroidSQLite/article.html 并更改了表格和代码以处理其他字段。但是当列表显示时,它只显示项目字段而不是价格。我找不到它在代码中的哪个位置执行此操作。
这是将项目加载到适配器中的代码,getAllItems 返回和项目数组。商品有 id、item 和 price。
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,但我不明白为什么?
【问题讨论】:
-
您需要创建自己的类来扩展 ArrayAdapter 并重写 getView() 方法以提取两个数据片段并将它们各自放入自己的视图中。