Java 在简单列表中显示多个项目\u项目\u 1
我按照这个指南修改了表和代码以处理其他字段。但当显示列表时,它只显示项目字段,而不显示价格。我在代码中找不到它在哪里做这件事 下面是将项加载到适配器、getAllItems返回和项数组中的代码。项目具有id、项目和价格Java 在简单列表中显示多个项目\u项目\u 1,java,android,Java,Android,我按照这个指南修改了表和代码以处理其他字段。但当显示列表时,它只显示项目字段,而不显示价格。我在代码中找不到它在哪里做这件事 下面是将项加载到适配器、getAllItems返回和项数组中的代码。项目具有id、项目和价格 List<Item> values = datasource.getAllItems(); // Use the SimpleCursorAdapter to show the // elements in a ListView Ar
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);
List values=datasource.getAllItems();
//使用SimpleCursorAdapter显示
//ListView中的元素
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,值);
setListAdapter(适配器);
以下是其背后的代码:
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;
}
公共列表getAllItems(){
列表项=新建ArrayList();
Cursor Cursor=database.query(MySQLiteHelper.TABLE_项,
空,空,空,空,空,空,空);
cursor.moveToFirst();
而(!cursor.isAfterLast()){
项目=游标项目(游标);
项目。添加(项目);
cursor.moveToNext();
}
//确保关闭光标
cursor.close();
退货项目;
}
专用项游标项目(游标){
项目=新项目();
item.setId(cursor.getLong(0));
item.setItem(cursor.getString(1));
item.setPrice(cursor.getString(2));
退货项目;
}
看起来“values”只是Item.items,而不是price和ID,但我不明白为什么?如果没有整个private Item cursorToItem内容,添加如何
while (!cursor.isAfterLast()) {
items.add(cursor.getLong(0) + " " + cursor.getString(1) + " " + cursor.getString(1));
cursor.moveToNext();
}
如果您想在一行中有更多的对象,您的任务就要大得多。我建议您检查链接并实现Pankaj的代码。我已经用了一段时间了,它就像一个符咒。但是,我花了一段时间才理解。您需要创建自己的类来扩展ArrayAdapter并重写getView()方法,以提取两个数据段并将它们分别放入各自的视图中。