Реализуйте шаблон обратного вызова.
Создайте новый файл интерфейса:
Interface MyVolleyResponse {
void onResponse(JSONArray response);
void onError(VolleyError error);
}
Ваше действие должно реализовать это, как показано ниже:
public class MainActivity extends AppCompatActivity implements MyVolleyResponse {...}
Добавьте новый методы вашей деятельности:
void onResponse(JSONArray response) {
// process your response here, building your question array...
}
void onError(VolleyError error) {
// handle errors here...
}
Измените свои ответы Volley в SetQ
:
public void onResponse(JSONArray response) {
callback.onResponse(response);
}
public void onErrorResponse(VolleyError error) {
callback.onError(error);
}
Создайте конструктор в SetQ
, чтобы установить обратный вызов:
private MyVolleyResponse callback;
SetQ(MyVolleyResponse callback) {
this.callback = callback;
}
Вызовите этот конструктор в своей деятельности с помощью:
SetQ volley = new SetQ(this);
Измените подпись getData
на просто:
void getData() {...}
И запустите вызов Volley
с volley.getData()
.
Удалите все AsyncTask
объекты в вашем коде, потому что Volley
уже является асинхронным.