我想显示来自服务器的数据。我的结果数据显示为[get(0); index(0),价格:3800]。我想用android中的listview显示所有数据。我使用BaseAdapter,CustomAdapter。这里预订对象api。
[
{
"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 :(得分:0)
您的适配器填充您拥有的父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;
答案 1 :(得分:0)
首先,你应该使用Gson
在一个对象中解析结果,然后将结果列表传递给ListAdapter,然后在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;
}