Так что у меня этот код:Не добавлять элементы в ArrayAdapter
suggestionsAdapter.clear();
locations.clear();
List<Predictions> predictions = gson.fromJson(jsonObject.getJSONArray("predictions").toString(), new TypeToken<List<Predictions>>(){}.getType());
for(Predictions prediction : predictions){
String title = prediction.terms.get(0).value;
locations.add(title);
suggestionsAdapter.add(title);
}
Log.i("","loc are:" + locations);
Log.i("","locations are:" + locations.size());
suggestionsAdapter.notifyDataSetChanged();
Log.i("","suggestion adapter size:" + suggestionsAdapter.getCount());
И я вернусь это:
03-30 10:55:56.474: I/(3185): loc are:[Albert Cuypstraat, Albert Cuyp Market, Albania, Alblasserdam, Albert Cuypstraat]
03-30 10:55:56.474: I/(3185): locations are:5
03-30 10:55:56.474: I/(3185): suggestion adapter size:0
Почему это происходит? PS: это происходит внутри слушателя, который возвращает предсказания из запроса google places. Изменен:
suggestionsAdapter.addAll(locations);
suggestionsAdapter.notifyDataSetChanged();
Тем не менее такой же результат, иногда я получаю:
03-30 11:03:25.876: I/(10409): loc are:[Albert Cuypstraat, Albert Cuyp Market, Albert Cuypstraat, AH Haarlemmerdijk, Albert Heijn]
03-30 11:03:25.876: I/(10409): locations are:5
03-30 11:03:25.876: I/(10409): suggestion adapter size:3
Почему вы добавляете по одному заголовку в предложенияхAdapter.add (...)? –
Причина: Я получал тот же результат для предложенийAdapter.addAll (местоположения); И я сказал, что попытаюсь добавить их отдельно. –
просто вызовите 'notifyDataSetChanged();' inside' tipsAdapter.add (...) ' –