У меня есть что-то, что звучит как очень тривиальный вопрос для меня, но у меня возникают трудности с этим. Я создаю приложение и мне нужно сделать запрос к серверу (используя Volley на данный момент) и сохранить одно из значений, возвращаемых запросом, в класс, с которого я делаю запрос. Целью этого является использование указанного значения в операторе if в другой части приложения.
Как я уже сказал, я в настоящее время использую залп, и у меня сейчас есть ( очень примерно)
private String varIWantToChange;
private void methodThatMakesTheRequest(){
RequestQueue queue = Volley.newRequestQueue(context);JsonObjectRequest request = new JsonObjectRequest(serverUrl, null, new Response.Listener<JSONObject>() {
@Overridepublic void onResponse(JSONObject response) {
//if response is not null
//make changes to the UI, I have no problem with that
varIWantToChange = "value extracted from JSONObject response";
}, new Response.ErrorListener() {
// (...)
}
}
queue.add(request);
}
private void methodWhereVarShouldBeChecked(){
//but since I am trying to assign a value to my variable in the async method
//its value only changes in the scope of the new JSONObjectRequest
if(varIWantToChange.equals("a"){
// ...
} else {
// ...
}
}
Я огляделся по сторонам, и единственное, что мне удалось найти, - это люди, которые предлагали сделать синхронный звонок, что заставило бы мое приложение ненадолго зависнуть, и лайки, которых я хотел бы избежать, и которые в целом звучали неправильно. Извиняюсь за то, что звучит для меня как тривиальный вопрос.