Java 在简单列表中显示多个项目\u项目\u 1

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

我按照这个指南修改了表和代码以处理其他字段。但当显示列表时,它只显示项目字段,而不显示价格。我在代码中找不到它在哪里做这件事

下面是将项加载到适配器、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);
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()方法,以提取两个数据段并将它们分别放入各自的视图中。