Дело в том, что сейчас вы делаете асинхронный вызов. Вы запрашиваете некоторую информацию, и когда эта информация была скомпилирована и готова , то вызывает метод onResponse()
. Только затем этот список может быть заполнен из тела входящего ответа.
Итак, что вы можете сделать: иметь другой метод в вашем классе включения, например, updateList()
, а затем просто вызвать этот метод из вашей реализации onResponse()
.
Кроме того, вы можете захотеть превратить ваш асинхронный вызов в синхронный. Затем вместо этого вы используете execute()
для ожидания получения результата (см., Например, здесь ). Но вам все равно нужно иметь метод обратного вызова для вызова.
В качестве альтернативы, вы можете иметь поле внутри класса, например
List<DanceSchool> danceSchools
...
private void getSchoolList() {
final Call<List<DanceSchool>> call = ...
call.enqueue(new Callback<List<DanceSchool>>() {
@Override
public void onResponse(Call<List<DanceSchool>> call, Response<List<DanceSchool>> response) {
...
danceSchools.addAll(response.body());