我在AutocompleteTextView
上添加了TextChangedListener
。在TextChangedListener
的afterTextChanged()
中,我调用AsyncTask
从网络加载数据(因为列表可能很大,所以在活动启动时加载所有数据不是一个好选择,这只会浪费流量)。
AsyncTask
的onPostExecute()
代码如下(我使用ArrayAdapter
):
@Override
protected void onPostExecute(ArrayList<Subregion> result)
{
super.onPostExecute(result);
if (result != null)
{
adapter.clear();
for (Iterator<Subregion> iterator = result.iterator(); iterator.hasNext();)
{
Subregion subregion = iterator.next();
adapter.add(subregion);
}
adapter.notifyDataSetChanged();
autocompleteTextView.showDropDown();
}
}
Subregion
是我的自定义对象,已经重写了 toString()
方法。我希望当用户开始输入时,程序可以开始加载数据,并在接收和解析后立即显示结果。
我的问题:
autocompleteTextView.showDropDown()
没有效果。虽然 onPostExecute()
接收到了正确的数据列表,并将它们添加到适配器中,但是 showDropDown()
不会显示下拉框。这是什么问题?