2017-03-10 7 views
-3

このエラーが発生しましたjava.lang.NullPointerException:仮想メソッドint java.lang.String.length()を実行中にヌルオブジェクト参照AndroidのonRefreshonRefreshメソッド外のデータをフェッチすると問題ありません。Swiperefreshを実行しているときに、Volleyのnullオブジェクト参照で仮想メソッド 'int java.lang.String.length()'を呼び出そうとしています。

ここに私のバレーボール要求

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

、ここでは、リフレッシュ方法

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

 
     getDataTicket(a,b,c); 
 
    }

答えて

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

ああ、私の悪い私はそれを呼んだ後、長さは再びリセットされないことに気付かなかった。 –

関連する問題