J'essaie de récupérer les données du serveur et de les afficher dans mon application. Cependant, le résultat du serveur est nul. Est-il possible que le résultat obtienne null et il ne soit pas capable d'extraire des données du serveur?Erreur lors de la récupération des données du serveur en récupérant java.lang.NullPointerException: Android
Ce sont des données de mon serveur,
{
"COLUMNS": ["TIMEID","BRANCHID","COMPANYID","MON_O","TUE_O","WED_O","THU_O","FRI_O","SAT_O","SUN_O","MON_C","TUE_C","WED_C","THU_C","FRI_C","SAT_C","SUN_C","CREATDATE"],
"DATA":
[[195,4,4,"09:00","09:00","09:00","09:00","09:00","Closed","Closed","16:30","16:30","16:30","16:30","16:30","Closed","Closed","May, 16 2017 08:16:12"]
]}
Voilà comment je suis en train de récupérer les données,
TextView timeStatus;
public static final String MON_O = "MON_O";
public static final String TUE_O = "TUE_O";
public static final String WED_O = "WED_O";
public static final String THU_O = "THU_O";
public static final String FRI_O = "FRI_O";
public static final String SAT_O = "SAT_O";
public static final String SUN_O = "SUN_O";
public static final String MON_C = "MON_C";
public static final String TUE_C = "TUE_C";
public static final String WED_C = "WED_C";
public static final String THU_C = "THU_C";
public static final String FRI_C = "FRI_C";
public static final String SAT_C = "SAT_C";
public static final String SUN_C = "SUN_C";
public static final String JSON_ARRAY = "COLUMNS";
timeStatus = (TextView) view.findViewById(R.id.time_status);
En cliquant sur le RelativeLayout, appelant la fonction getData(),
timeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (timeLayoutCollapse.getVisibility() == View.GONE) {
timeLayoutCollapse.setVisibility(View.VISIBLE);
getData();
} else {
timeLayoutCollapse.setVisibility(View.GONE);
}
}
});
et la fonction de réponse JSON est comme ci-dessous,
private void getData() {
if (dBranchID == 0) {
Log.e("no branch id", "sdsfsdf");
return;
}
String url = context.getString(site_url)+"branch_time.cfc?method=branchtime&branchid=" +dBranchID;
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
}
private void showJSON(String response) {
String name = "";
String address = "";
String vc = "";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(JSON_ARRAY);
JSONObject companyData = result.getJSONObject(0);
mon = companyData.getString(MON_O);
tue = companyData.getString(TUE_O);
wed = companyData.getString(WED_O);
} catch (JSONException e) {
e.printStackTrace();
}
timeStatus.setText(mon);
}
Je reçois une erreur,
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference.
'timeStatus' est null. –