I need to return my ArrayList but i receive null when I call 'volleyReq'. Please tell me what I am doing wrong? How to return values when there is void inside. I think I should use interface but i don't know how. Thank you.
public static ArrayList<KladrObject> volleyReq(String contentType,String limit,String query) {
final String url = new StringBuilder().append("http://kladr-api.ru/api.php?").append("query=" + query).append("&contentType="+contentType).append("&limit="+limit).append("&token=MY KEY").toString();
final ArrayList<KladrObject> arr = new ArrayList<KladrObject>();
final JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//JSONArray array = response.getJSONArray("result");
try{
JSONArray array = response.getJSONArray("result");
for (int i = 0;i<array.length();i++) {
KladrObject kladrObject = new KladrObject();
kladrObject.setName(array.getJSONObject(i).getString("name"));
kladrObject.setType(array.getJSONObject(i).getString("type"));
kladrObject.setShortype(array.getJSONObject(i).getString("typeShort"));
arr.add(kladrObject);
}
}catch (JSONException e){
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//Do what you want to do on error
}
});
AppController.getInstance().getRequestQueue().add(req);
return arr;
}