2016-08-02 34 views
0

Ich möchte meine Daten zeigen, die vom Server kommen. Meine Ergebnisdaten werden angezeigt [get (0); Index (0), Preis: 3800]. Ich möchte alle Daten mit Listenansicht in Android zeigen. Ich benutze BaseAdapter, CustomAdapter. Hier buchen Objekt api.Wie zeigt man Daten mit ListView in Android?

[ 
    { 
    "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

didi aufblasen Sie jede Ansicht? – DKV

+0

View rowView rowView = inflater.inflation (R.layout.activity_listview, null); –

+0

können Sie fügen Sie die Complect-Adapter-Klasse – DKV

Antwort

0

Ihr Adapter füllt das übergeordnete Booking Objekt, das Sie eine haben. Aber wenn Sie order_detail Liste an Adapter übergeben, können Sie 3 Zeilen sehen.

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

Sie sollten nicht in der Liste Schleife. getView Methode wird für jeden Eintrag in der Liste ausgelöst.

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

es zeigt Index (0) –

+0

Ihre Liste hat nur einen Artikel. 'Liste bookingList = new ArrayList (); bookingList.add (booking); 'Sie sollten die' order_details' Liste an den Adapter übergeben. – faranjit

+0

detail.get (Position) benötigt nicht. Vielen Dank. Ich hab es geschafft. :) –

0

zuerst, dann sollten Sie das Ergebnis in einem Objekt analysieren Gson verwenden, und die Ergebnisliste auf den ListAdapter geben und dann im getView:

@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; 
}