Je rencontre cette erreur java.lang.NullPointerException:
Tentative d'invocation de la méthode virtuelle int java.lang.String.length()
sur une référence d'objet null lors de l'exécution le onRefresh
dans Android. quand je récupère des données en dehors de la méthode onRefresh
, ça va.Tentative d'invocation de la méthode virtuelle 'int java.lang.String.length()' sur une référence d'objet null sur Volley lors de l'exécution de Swiperefresh Android
Voici ma demande Volley
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);
et voici ma méthode de rafraîchissement sur
@Override
public void onRefresh() {
ViewTicketModel ticketModel = new ViewTicketModel();
String a = ticketModel.getmToken();
String b = ticketModel.getmSignature();
String c = ticketModel.getmPvdCode();
getDataTicket(a,b,c);
}
oh je vois, ma mauvaise je n'ai pas remarqué que, après je l'ai appelé, la longueur n'est pas réinitialisée à nouveau. –