2012-03-12 6 views
0

このガイド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のものがなければ

+0

ArrayAdapterを拡張する独自のクラスを作成し、getView()メソッドをオーバーライドして両方のデータを取り出し、それぞれを独自のViewに配置する必要があります。 – FoamyGuy

答えて

0

、。 thisのリンクをチェックし、Pankajのコードを実装することをお勧めします。私はしばらくそれを使用しており、それは魅力のように動作します。しかし、理解するのにはしばらく時間がかかりました。

関連する問題