I got a function where Im making an arrayrequest with the purpose to get the quantity of the registers from de callback; but, Im trying to return that number for the function.
I´m declaring a variable that gets the lenght or size of the temporal ArrayList, which it´s filled whith the response of the api request using the volley library.
public int Contar(int position){
final int[] Cant = new int[1];
ArrayList<Entidad_Decision> listaO = new ArrayList<>();
if (position == 0){
RequestQueue requestQueue = Volley.newRequestQueue(mContext.getApplicationContext());
JsonArrayRequest arrayRequest = new JsonArrayRequest(Request.Method.GET, "http:My Api IP", null,
new Response.Listener<JSONArray>() {
@SuppressLint("SetTextI18n")
@Override
public void onResponse(JSONArray jsonArray) {
try {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String numero_de_decision = jsonObject.getString("NUMERO_DE_DECISION");
listaO.add(new Entidad_Decision(numero_de_decision,"","responsables","fecha" + " - " + "plazo", "observaciones", "procede", "status"));
}
//buscar.setText(listaO.size() + "");
Cant[0] = listaO.size();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
arrayRequest.setRetryPolicy(new DefaultRetryPolicy(MY_DEFAULT_TIMEOUT4,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(arrayRequest);
}else if (position == 1){
RequestQueue requestQueue = Volley.newRequestQueue(mContext.getApplicationContext());
JsonArrayRequest arrayRequest = new JsonArrayRequest(Request.Method.GET, "http:My API IP", null,
new Response.Listener<JSONArray>() {
@SuppressLint("SetTextI18n")
@Override
public void onResponse(JSONArray jsonArray) {
try {
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String numero_de_decision = jsonObject.getString("NUMERO_DE_DECISION");
listaO.add(new Entidad_Decision(numero_de_decision,"","responsables","fecha" + " - " + "plazo", "observaciones", "procede", "status"));
}
//buscar.setText(listaO.size() + "");
Cant[0] = listaO.size();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
arrayRequest.setRetryPolicy(new DefaultRetryPolicy(MY_DEFAULT_TIMEOUT,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(arrayRequest);
}
return Cant[0];
}
When I´m calling that variable, the value is 0. How can I solve this??