2016-07-29 2 views
1

У меня есть ответ json, который я напечатал в списке. Он выводит значения из json, но все значения не напечатаны правильно. Некоторые значения json напечатаны в неправильном месте.Ответ JSON неправильно напечатан в андроиде Listview с использованием волейбола

JSON ответ:

``` 
[ 
    { 
     "HouseNo":"33333333", 
     "AreaName":"ghfhgfhg", 
     "Landmark":"", 

    }, 
    { 

     "HouseNo":"33333333", 
     "AreaName":"gfhgfh", 
     "Landmark":"", 

    } 
] 

`` `

Это код для извлечения конкретного значения:

StringRequest stringRequest = new StringRequest(Request.Method.POST,url, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Log.d(TAG, response.toString()); 
         hidePDialog(); 




          try { 
           JSONArray jsonarray = new JSONArray(response); 
           for (int i = 0; i < jsonarray.length(); i++) { 
            JSONObject obj = jsonarray.getJSONObject(i); 
           Customer customer = new Customer(); 
           customer.setTitle(obj.getString("HouseNo")); 
           customer.setSerial(obj.getString("AreaName")); 
           customer.setService(obj.getString("Landmark")); 

           customerList.add(customer); 

          } 

         } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

         // notifying list adapter about data changes 
         // so that it renders the list view with updated data 
         adapter.notifyDataSetChanged(); 
            } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       hidePDialog(); 

      } 
     }) 

некоторых реакции печатаются в порядке; Но вместо некоторого ответа напечатал напечатанный другой ответ. Как решить эту проблему?

+0

Показать код адаптера – Vickyexpert

+0

также добавить свой модельный класс клиента – Pavya

ответ

3

Вашего кода JSON разбор right.Try переопределить Add() метода в классе адаптера, если ваш адаптер распространяется на ArrayAdapter класса.

@Override 
    public void add(Customer object) { 
     customerList.add(object); 
     super.add(object); 
    } 

Это автоматически обновит список просмотров.

И если вы используете BaseAdapter. Тогда там может быть ошибкой в ​​классе модели или объекте List, который используется для адаптера.

1

Вы можете использовать Gson библиотеку Google для таких преобразований

Customer c = new Gson().fromJson(json,new TypeToken<Customer>(){}.getType());