Я получаю места с Картами Google и модифицирую их и добавляю их в список. Я хочу собрать все места в списке, я сделал это как внизу, но allItem
размер списка всегда возвращается 0, я не могу понять, почему, я что-то упустил ?. Может кто-нибудь мне помочь?Android - размер ArrayList всегда возвращается 0
Мой Глобалы
ArrayList<MapData.ResultsBean> myList;
ArrayList<MapData.ResultsBean> allItems;
Функция кнопки нажмите
menuOption1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myList = new ArrayList<MapData.ResultsBean>();
allItems = new ArrayList<MapData.ResultsBean>();
allItems.addAll(selectAllFrom("restaurant", myList));
allItems.addAll(selectAllFrom("cafe", myList));
allItems.addAll(selectAllFrom("bar", myList));
Log.v("Size", "Places List size : " + allItems.size() + "");
}
});
функция SelectAllFrom
private ArrayList<MapData.ResultsBean> selectAllFrom(final String type, final ArrayList<MapData.ResultsBean> list) {
// Creating an object of our api interface
ApiService myApi = RetroClient.getApiService();
// Calling JSON
Call<MapData> call = myApi.getNearbyPlaces(type, mLastLocation.getLatitude() + "," + mLastLocation.getLongitude(), PROXIMITY_RADIUS);
call.enqueue(new Callback<MapData>() {
@Override
public void onResponse(Call<MapData> call, Response<MapData> response) {
Log.v("Response Code", "Response Code is : " + response.code());
if (response.isSuccessful()){
try {
// This loop will go through all the results
for (int i = 0; i < response.body().getResults().size(); i++) {
addToList(list, response.body().getResults().get(i));
}
Log.v(type, "List Size : " + list.size() + "");
} catch (Exception e) {
Log.d("onResponse", "There is an error");
e.printStackTrace();
}
} else {
Toast.makeText(getApplicationContext(), "Something work wrong", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<MapData> call, Throwable t) {
Toast.makeText(getApplicationContext(), "On Failure", Toast.LENGTH_LONG).show();
}
});
return list;
}
и наконец, вот моя addToList функция
void addToList(ArrayList<MapData.ResultsBean> myList, MapData.ResultsBean item){
if(!myList.contains(item))
myList.add(item);
}
Это мой LogCat, размер allItem всегда возвращает 0
V/Size: Places List size : 0
V/restaurant: List Size : 20
V/bar: List Size : 21
V/cafe: List Size : 41
Вы создаете два новых пустых списка в 'menuOption1.setOnClickListener', когда используете новый, а затем печатаете размер мест. – TDG