У меня есть глобальный ArrayList
, называемый разделами, в моем методе getMutableCountryLiveData()
я обновляю этот ArrayList. Затем в setUpButton()
я называю тот же ArrayList
. Это должно работать как его глобальная переменная. Однако ArrayList
возвращается пустым. Есть идеи, почему это так? Спасибо
Код:
public class PlannerResultsFragment extends Fragment {
private ArrayList<Country> cities = new ArrayList<>();
private MutableLiveData<List<List<Country>>> mutableLiveData = new MutableLiveData<>();
private View view;
private ArrayList<Integer> days = new ArrayList<>();
private List<List<Country>> partitions = new ArrayList<>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
fragmentPlannerResultsBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_planner_results,container,false);
view = inflater.inflate(R.layout.fragment_planner_results, container, false);
getMutableCountryLiveData()
setUpButton();
return fragmentPlannerResultsBinding.getRoot();
}
public MutableLiveData<List<List<Country>>> getMutableCountryLiveData() {
final TriposoAPI userDataService = RetrofitClient.getService();
Call<InitialResponse> call = userDataService.getPlannerResults(city_input,persona_input,items_input);
call.enqueue(new Callback<InitialResponse>() {
@Override
public void onResponse(Call<InitialResponse> call, Response<InitialResponse> response) {
InitialResponse cityResponse = response.body();
if (cityResponse != null && cityResponse.getResults() != null) {
cities = (ArrayList<Country>) cityResponse.getResults();
int partitionSize = 2;
for (int i=0; i < cities.size(); i += partitionSize) {
partitions.add(cities.subList(i, Math.min(i + partitionSize, cities.size())));
}
mutableLiveData.setValue(partitions);
}
}
@Override
public void onFailure(Call<InitialResponse> call, Throwable t) {
}
});
return mutableLiveData;
}
public void setUpButton(){
for (int i = 0; i < partitions.size(); i++){
days.add(i);
}
}
}