【发布时间】:2016-07-18 04:13:36
【问题描述】:
所以我有这个代码:
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:这发生在从谷歌位置查询中获取预测的侦听器内部。 改为:
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
【问题讨论】:
-
为什么要在suggestionsAdapter.add(...)中一一添加标题?
-
因为我得到了同样的结果,suggestsAdapter.addAll(locations);我说我会尝试单独添加它们
-
只需在
suggestionsAdapter.add(...)内调用notifyDataSetChanged(); -
它是一个 ArrayAdapter。我需要它成为 AutoCompletionTextView 的 ArrayAdapter。我还在 postDelayed 可运行(500 毫秒)中做了一个 notifyDataSetChanged,我得到了同样的结果......
-
你还是不明白我说的话吗?发布您的所有 ArrayAdapter 代码
标签: android arrays list android-arrayadapter adapter