Мне нужно получить состояние [0] из void onResponse() для определения возвращаемого значения целого метода. Я обнаружил, что состояние [0] в inResponse, которое не может быть объявили значение для класса. Можно ли вывести состояние [0] из? Пожалуйста, помогите мне !!!!!!!!!!!!!!!! У меня нет идей для этого. Я просто новичок.Android: как вернуть данные из метода void
String url = url;
final boolean[] state = {true}
RequestQueue requestQueue = Volley.newRequestQueue(context);
CustomRequest customRequest = new CustomRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() {
public void onResponse(JSONObject jsonObject) {
try {
for (int i = 0; i < jsonObject.getJSONArray("favourites").length(); i++) {
JSONObject row = jsonObject.getJSONArray("favourites").getJSONObject(i);
Favourite favourites = new Favourite();
favourites.setFavouriteId(row.getString("favouriteId"));
favourites.setFavouriteUserId(row.getString("favouriteUserId"));
favourites.setFavouriteType(row.getString("favouriteType"));
favourites.setFavouritePostId(row.getString("favouritePostId"));
favourites.setFavouriteDate(row.getString("favouriteDate"));
if(!reportType.equals(favourites.getFavouriteType()) && !favouritePostId.equals(favourites.getFavouritePostId())){
state[0] = false;
}
favouriteArrayList.add(i, favourites);
}
//Toast.makeText(context, "done", Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(context, R.string.error_json_error, Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
});
requestQueue.add(customRequest);
if (state[0] == true) {
return 0;
} else{
return 1;
}
вам нужно создать метод, возвращающий Int – Max
onResponse и onErrorResponse не будет выполняться в том месте, где вы их пишете, это не имеет никакого смысла для них, чтобы вернуть что-нибудь. Вы понимаете, как работают асинхронные обратные вызовы? –