我正在使用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
當您使用new時,您在'menuOption1.setOnClickListener'處創建兩個新的空列表,然後打印場所的大小。 – TDG