2017-03-10 3 views
-3

Ich habe diesen Fehler java.lang.NullPointerException: Versuch, virtuelle Methode int java.lang.String.length() auf eine Nullobjektverweis während der Ausführung aufzurufen die in Android. wenn ich Daten außerhalb onRefresh Methode abholen, ist es in Ordnung.Versuch, die virtuelle Methode 'int java.lang.String.length()' für eine Nullobjektreferenz auf Volley während der Ausführung von Swiperefresh aufzurufen Android

hier ist mein Volley Anfrage

final String ticketUrl = "http"; 
 
     StringRequest getTicket = new StringRequest(Request.Method.POST, ticketUrl, 
 
       new Response.Listener<String>() { 
 
        @Override 
 
        public void onResponse(String response) { 
 
         try { 
 
          JSONObject ticketObj = new JSONObject(response); 
 
          JSONArray ticketArray = ticketObj.getJSONArray("a"); 
 
          for (int i = 0 ; i < ticketArray.length() ; i++){ 
 
           ViewTicketModel ticket_object = new ViewTicketModel(); 
 
           JSONObject ticketVal = ticketArray.getJSONObject(i); 
 
           String diagnosa = ticketVal.getString("first"); 
 
           String noPasien = ticketVal.getString("second"); 
 
           String dokter = ticketVal.getString("3rd"); 
 
           String jenisPerawatan = ticketVal.getString("4th"); 
 

 
           ticket_object.setJenis_perawatan(jenisPerawatan); 
 
           ticket_object.setNomor_pasien(noPasien); 
 
           ticket_object.setDoctor(dokter); 
 

 
           ticket_list_mdl.add(ticket_object); 
 
           adapter.notifyDataSetChanged(); 
 
           // stopping swipe refresh 
 
           swipeRefreshView.setRefreshing(false); 
 
          } 
 

 
         } catch (JSONException e) { 
 
          e.printStackTrace(); 
 
         } 
 
        } 
 
       }, new Response.ErrorListener() { 
 
      @Override 
 
      public void onErrorResponse(VolleyError error) { 
 
       Log.v("V_error",error.toString()); 
 
       // stopping swipe refresh 
 
//    swipeRefreshView.setRefreshing(false); 
 
      } 
 
     }) { 
 
      @Override 
 
      protected Map<String, String> getParams() { 
 
       Map<String, String> params = new HashMap<String, String>(); 
 
       params.put("a", token); 
 
       params.put("b", signature); 
 
       params.put("c", pvd_code); 
 
       return params; 
 
      } 
 
     }; 
 

 
     RequestQueue ticketQueue = Volley.newRequestQueue(ViewTickets.this); 
 
     ticketQueue.add(getTicket);

und hier ist meine auf Refresh-Methode

@Override 
 
    public void onRefresh() { 
 
     ViewTicketModel ticketModel = new ViewTicketModel(); 
 
     String a = ticketModel.getmToken(); 
 
     String b = ticketModel.getmSignature(); 
 
     String c = ticketModel.getmPvdCode(); 
 

 
     getDataTicket(a,b,c); 
 
    }

Antwort

0
@Override 
public void onResponse(String response) { 
    try { 
     JSONObject ticketObj = new JSONObject(response); 
     JSONArray ticketArray = ticketObj.getJSONArray("a"); 
     if (ticketArray != null) 
      for (int i = 0; i < ticketArray.length(); i++) { 
              ... 
+1

oh ich sehe, mein Schlechter ich habe nicht bemerkt, dass, nachdem ich es anrief, die Länge nicht wieder zurückgesetzt wird. –

Verwandte Themen