当我想从 ArrayList 中的请求 json 添加一个对象时
Posted
技术标签:
【中文标题】当我想从 ArrayList 中的请求 json 添加一个对象时【英文标题】:When i want add a object from request json in an ArrayList 【发布时间】:2016-04-22 05:08:53 【问题描述】:好吧,我通过 url 查询一个 JSON 对象,我得到该对象并将其添加到一个字符串中,好吧,问题是当我将它添加到 ArrayList
时,这一行被跳过并且在我们添加时不执行,有人知道为什么吗?
public void consult(String val_user)
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(
"http://"+ippref+":8080/Activo/webresources/activo.entities.historialactivos/consulta/"+val_user+"", new Response.Listener<JSONArray>()
@Override
public void onResponse(JSONArray response)
String item = "";
for (int i = 0; i < response.length(); i++)
try
JSONObject obj = response.getJSONObject(i);
item += "Actividad: " + obj.getString("actividad") + "\r\n";
item += "Activo NS: " + obj.getString("activo") + "\r\n";
item += "Fecha: " + obj.getString("fecha") + "\r\n";
item += "Id Activo: " + obj.getString("idActivo") + "\r\n";
item += "Id Historial: " + obj.getString("idHistorialActivo") + "\r\n";
item += "Id Incidencia: " + obj.getString("idIncidencia") + "\r\n";
item += "Id Usuario: " + obj.getString("idUsuario") + "\r\n";
item += "Incidencia: " + obj.getString("incidencia") + "\r\n";
item += "Observaciones: " + obj.getString("observaciones") + "\r\n";
item += "Oficina: " + obj.getString("oficina") + "\r\n";
item += "Tipo de movimiento: " + obj.getString("tipoMovimiento") + "\r\n";
item += "Usuario: " + obj.getString("usuario" + "\r\n");
array.add(item);
item = "";
catch (JSONException ex)
ex.printStackTrace();
metodo_adapter();
adapter.notifyDataSetChanged();
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
);
AppController.getInstance().addToRequestQueue(jsonArrayRequest);
在array.add(item)
中,当我执行调试时跳过这行代码。
【问题讨论】:
【参考方案1】:array.add(item);
item = ""; // This line is causing issue.
不要像这样让你的项目字符串为空,因为字符串是一个基于引用的变量,如果你这样做,你最终会在你的数组中存储“”。
最好在 try 块中定义您的 String item = "";
【讨论】:
我删除了那行但还是同样的错误,行array.add(item) 执行点失败,不要添加 我期待它以这种方式工作。请问您是如何声明和启动“数组”的? 私有列表唯一的问题是因为你放了
String item = "";
在for循环之外,这意味着所有数组列表都查找单个对象,意味着只有最后一个会有数据
解决方案必须这样做
for (int i = 0; i < response.length(); i++)
try
String item = "";
JSONObject obj = response.getJSONObject(i);
item += "Actividad: " + obj.getString("actividad") + "\r\n";
item += "Activo NS: " + obj.getString("activo") + "\r\n";
item += "Fecha: " + obj.getString("fecha") + "\r\n";
item += "Id Activo: " + obj.getString("idActivo") + "\r\n";
item += "Id Historial: " + obj.getString("idHistorialActivo") + "\r\n";
item += "Id Incidencia: " + obj.getString("idIncidencia") + "\r\n";
item += "Id Usuario: " + obj.getString("idUsuario") + "\r\n";
item += "Incidencia: " + obj.getString("incidencia") + "\r\n";
item += "Observaciones: " + obj.getString("observaciones") + "\r\n";
item += "Oficina: " + obj.getString("oficina") + "\r\n";
item += "Tipo de movimiento: " + obj.getString("tipoMovimiento") + "\r\n";
item += "Usuario: " + obj.getString("usuario" + "\r\n");
array.add(item);
item = "";
catch (JSONException ex)
ex.printStackTrace();
metodo_adapter();
adapter.notifyDataSetChanged();
会解决你的问题
【讨论】:
以上是关于当我想从 ArrayList 中的请求 json 添加一个对象时的主要内容,如果未能解决你的问题,请参考以下文章
在 android [JAVA] 中的多个 Arraylist 中添加 JSON 数组