2016-01-16 35 views
1

那麼,我通過url諮詢一個JSON對象,我得到的對象並將其添加到一個字符串,那裏沒事,問題是當我將它添加到ArrayList當我們添加時,這條線會被跳過並且不會被執行,任何人都知道爲什麼?當我想從一個ArrayList中的請求json添加一個對象

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)當我執行調試跳過代碼行。

回答

2
array.add(item); 
item = ""; // This line is causing issue. 

不要讓你的項目字符串是這樣的,因爲字符串是一個基於引用的變量,如果你會這樣做,你最終會在你的數組中存儲「」。

更好地定義你的String item = "";內嘗試阻止

+0

我刪除該行,但仍然是相同的錯誤,行array.add(項目)執行點失敗,不要添加 –

+0

我期待它以這種方式工作。我可以知道你是如何宣佈併發起「陣列」的嗎? –

+0

private列表 arrayactivos = new ArrayList <>(); –

2

唯一的問題,因爲你把

String item = ""; 

外面環路來說,這意味着所有的數組列表中查找到單個對象,意味着只有最後一個將具有數據

解決方案必須做到這一點

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

      } 

將解決您的問題

+0

謝謝; D我解決了我的問題 –

+0

請檢查我的回答是否正確答案 – user3623824

+0

非常感謝 –

相關問題