2016-08-02 8 views
0

서버에서 가져온 데이터를 보여 드리고 싶습니다. 내 결과 데이터가 표시됩니다. [get (0); 인덱스 (0), 가격 : 3800]. 안드로이드에 listview로 모든 데이터를 보여주고 싶습니다. BaseAdapter, CustomAdapter를 사용합니다. 여기 예약 PHP 개체.android에서 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 = inflater.inflate (R.layout.activity_listview, null); –

+0

당신은 complect adapter 클래스 – DKV

답변

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; 
+0

을 붙일 수 있습니까? 그것은 인덱스 (0) –

+0

을 보여줍니다. 귀하의 목록에는 단 하나의 항목 만 있습니다. '리스트 예약 목록 = 새로운 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; 
} 
관련 문제