我在列表视图中打印了一个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对象可能会出错。