2015-05-20 3 views
0

Это ничего не отображает в сетке. Что-то не так? Пожалуйста, предложите решение.настройка сетки с помощью customgridadapter

Мой массив JSON хранится в списке под названием seat_list. Я хочу поместить некоторые изображения в сетку на основе значений в этом массиве, но ничего не отображает.

JSON синтаксический анализ:

private void json_parser(JSONArray jarray) { 
    try { 

     seat_list = new ArrayList<Seat_Availabe>(); 

     for (int i = 0; i < jarray.length(); i++) { 

      JSONObject object = jarray.getJSONObject(i); 



       String clmn = object.getString("row"); 



      Toast.makeText(getApplicationContext(), clmn, Toast.LENGTH_LONG).show(); 
      column = Integer.parseInt("clmn"); 

      if(j <= column) 
      { 
       j = column; 
      } 


      seat_list.add(new Seat_Availabe(object.getString("available"), object.getString("baseFare"), object.getString("column"), object.getString("fare"), object.getString("ladiesSeat"), object.getString("length"), object.getString("name"), object.getString("operatorServiceChargeAbsolute"), object.getString("operatorServiceChargePercent"), object.getString("row"), object.getString("serviceTaxAbsolute"), object.getString("serviceTaxPercentage"), object.getString("width"), object.getString("zIndex"))); 

     } 
     Toast.makeText(getApplicationContext(), j, Toast.LENGTH_LONG).show(); 

     gridView.setNumColumns(j+1); 
     customGridAdapter = new CustomGridViewAdapter(this, R.layout.seatrow_grid, seat_list); 
     gridView.setAdapter(customGridAdapter); 

     //Stuff element in blank space of array 



    } catch (Exception e) { 
     // TODO: handle exception 
     Log.e("@json_parser", e.getMessage()); 
    } 
} 

Это мой пользовательский адаптер, CustomGridViewAdapter:

public class CustomGridViewAdapter extends ArrayAdapter<Seat_Availabe>{ 
Context context; 
int layoutResourceId; 
List<Seat_Availabe> data = new ArrayList<Seat_Availabe>(); 

public CustomGridViewAdapter(Context context, int layoutResourceId,  List<Seat_Availabe> data) 
{ 
    super(context, layoutResourceId, data); 
    this.layoutResourceId = layoutResourceId; 
    this.context = context; 
    this.data = data; 
} 

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


    if (row == null) { 
     LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
     row = inflater.inflate(layoutResourceId, parent, false); 
     Seat_Availabe seat = data.get(position); 
     ImageView imageItem = (ImageView) row.findViewById(R.id.item_image); 
     imageItem.setImageResource(R.drawable.white); 


     if (seat.getAvailable().toString().equals("true") && seat.getLadiesSeat().toString().equals("false")) { 

      imageItem.setImageResource(R.drawable.white); 

     } 
     else if(seat.getAvailable().toString().equals("False")) 
     { 

      imageItem.setImageResource(R.drawable.gray); 
     } 
     else if(seat.getAvailable().toString().equals("true") && seat.getLadiesSeat().toString().equals("true")){ 

      imageItem.setImageResource(R.drawable.pink); 
     } 
     else{ 

      imageItem.setImageResource(R.drawable.white); 
     } 
    } 

    return row; 
} 


} 
+0

насчет seat_list. Вы уверены, что он не пуст? – NarendraJi

+0

Вы проверили seat_list? –

+0

содержит все значения – Ninja

ответ

0

сделать эти изменения в GetView (...)

public class CustomGridViewAdapter extends ArrayAdapter<Seat_Availabe>{ 
Context context; 
int layoutResourceId; 
List<Seat_Availabe> data = new ArrayList<Seat_Availabe>(); 

public CustomGridViewAdapter(Context context, int layoutResourceId,  List<Seat_Availabe> data) 
{ 
    super(context, layoutResourceId, data); 
    this.layoutResourceId = layoutResourceId; 
    this.context = context; 
    this.data = data; 
} 

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


    if (row == null) { 
     LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
     row = inflater.inflate(layoutResourceId, parent, false); 
    } 

     Seat_Availabe seat = data.get(position); 
     ImageView imageItem = (ImageView) row.findViewById(R.id.item_image); 
     imageItem.setImageResource(R.drawable.white); 


     if (seat.getAvailable().toString().equals("true") && seat.getLadiesSeat().toString().equals("false")) { 

      imageItem.setImageResource(R.drawable.white); 

     } 
     else if(seat.getAvailable().toString().equals("False")) 
     { 

      imageItem.setImageResource(R.drawable.gray); 
     } 
     else if(seat.getAvailable().toString().equals("true") && seat.getLadiesSeat().toString().equals("true")){ 

      imageItem.setImageResource(R.drawable.pink); 
     } 
     else{ 

      imageItem.setImageResource(R.drawable.white); 
     } 


    return row; 
} 
+0

не работает. – Ninja

+0

Какой выход? Вы пробовали переопределить getCount (...)? – Shahzeb