我在列表视图中打印了一个json响应。它打印了json中的值,但所有值均未正确打印。一些json值打印在错误的位置。

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();

            }
        })


可以打印一些响应;但是代替某些响应打印其他响应。如何解决此问题?

最佳答案

您的json解析代码是正确的。如果您的适配器扩展到ArrayAdapter类,请尝试覆盖适配器类中的add()方法。

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


这将自动更新您的列表视图。

如果使用的是BaseAdapter,则用于适配器的Model类或List对象可能会出错。

10-07 19:40
查看更多