2016-08-02 8 views
0

サーバーからのデータを表示したいと思います。結果データが表示されます。[get(0);インデックス(0)、価格:3800]。私はアンドロイドでlistviewですべてのデータを表示したいと思います。私は、BaseAdapter、CustomAdapterを使用します。ここで予約オブジェクトのAPI。アンドロイドのListViewでデータを表示する方法は?

[ 
    { 
    "order_id": 13, 
    "booking_person": 2, 
    "booking_datetime": "2016-07-01 22:30:00", 
    "total_amount": 2100, 
    "order_details": [ 
     { 
     "id": 20, 
     "order_id": 13, 
     "qty": 1, 
     "price": 3800, 
     "sub_total": 3800, 
     }, 
     { 
     "id": 21, 
     "order_id": 13, 
     "qty": 1, 
     "price": 3250, 
     "sub_total": 3250,, 
     }, 
     { 
     "id": 124, 
     "order_id": 13, 
     "qty": 1, 
     "price": 2100, 
     "sub_total": 2100,    
     } 
    ] 
    }, 
] 

BookingActivity.java

Bundle bundle = getIntent().getExtras(); 
Booking booking = new Gson().fromJson(bundle.getString("Booking"), Booking.class); 
List<Booking> bookingList = new ArrayList<Booking>(); 
bookingList.add(booking); 
BookingDetailAdapter adapter = new BookingDetailAdapter(BookingActivity.this, bookingList); 
lv.setAdapter(adapter); 

BookingDetailAdapter.clsas

@Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
Booking booking = list.get(position); 
     for (int i = 0; i < list.size(); i++) { 
      holder.textView.setText(list.get(i).getOrderDetail().get(0).getPrice().toString()); 
     } 
     return rowView; 
} 
+0

ディディの? – DKV

+0

ビューrowView rowView = inflater.inflate(R.layout.activity_listview、null); –

+0

あなたは貼り付けアダプタクラス – DKV

答えて

0

あなたのアダプターを使用すると、1つを持っている親Bookingオブジェクトを埋めます。しかし、order_detailリストをアダプタに渡すと、3行が表示されます。

BookingDetailAdapter adapter = new BookingDetailAdapter(BookingActivity.this, bookingList.get(0).getOrderDetail()); 

リストをループしないでください。 getViewメソッドはリスト内の各アイテムに対して起動します。

OrderDetail detail = list.get(position); 
holder.textView.setText(detail.get(position).getPrice().toString());  
return rowView; 
+0

を貼り付けることができますそれはインデックス(0) –

+0

を表示しますあなたのリストには1つのアイテムしかありません。 'リスト予約リスト=新しいArrayList (); bookingList.add(booking); 'アダプターに' order_details'リストを渡す必要があります。 – faranjit

+0

detail.get(position)は必要ありません。どうもありがとうございました。わかった。 :) –

0

まず、あなたはgetViewメソッドで、その後、Gsonを使用してオブジェクトに結果を解析し、ListAdapterに結果リストを渡すとすべきである:あなたが任意のビューを膨らま

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 

Booking booking = list.get(position); 
    holder.textView.setText(list.get(position).getOrderDetail().get(0).getPrice().toString()); 

    return rowView; 
} 
関連する問題