Ich bekomme Plätze mit Google Maps und nachrüsten und füge sie in eine Liste. Ich möchte alle Orte in einer Liste sammeln, ich habe es wie folgt gemacht, aber allItem
Listengröße gibt immer 0 zurück, ich kann nicht herausfinden, warum, fehlt mir etwas ?. Kann mir jemand helfen?Android - ArrayList Größe immer zurück 0
Mein Globals
ArrayList<MapData.ResultsBean> myList;
ArrayList<MapData.ResultsBean> allItems;
Button-Klick-Funktion
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 Funktion
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;
}
und letzte, hier ist meine addToList Funktion
void addToList(ArrayList<MapData.ResultsBean> myList, MapData.ResultsBean item){
if(!myList.contains(item))
myList.add(item);
}
Das ist mein logcat ist, kehrt allItem Größe immer 0
V/Size: Places List size : 0
V/restaurant: List Size : 20
V/bar: List Size : 21
V/cafe: List Size : 41
Sie erstellen zwei neue leere Listen unter 'menuOption1.setOnClickListener', wenn Sie new verwenden, und dann drucken Sie die Größe der Orte. – TDG