我在使用AutoCompleteTextView时遇到了一个奇怪的问题。我的代码如下,
AutoCompleteTextView searchText = //findView...
private ArrayList<String> suggestions = null;
private ArrayAdapter<String> suggestionAdapter = null;
suggestionAdapter = new ArrayAdapter<String>(this, R.layout.list, suggestions);
searchText.setAdapter(suggestionAdapter);
在代码中,我在for循环中填充arrayList。
for (int i = 0; i < nl.getLength(); i++) {
Element suggestion = (Element)nl.item(i);
String name = suggestion.getAttribute("data");
suggestions.add(name);
}
当我在文本视图中输入时,这并没有向我显示建议。
然而,当我在for循环之外的arraylist中添加任何字符串时(比如,在循环之后),我能够看到这些建议。在过去的两个小时里,它一直困扰着我。任何建议将不胜感激。
相信我,我正在输入我在for循环中填充的已知文本之一。
THX! 拉胡
答案 0 :(得分:0)
在for循环之后添加以下行。
suggestionAdapter.notifyDataSetChanged();
或强> 将以下行放在第一个代码中。
suggestionAdapter.setNotifyOnChange(true)
答案 1 :(得分:0)
不要在for循环之前设置适配器。将所有字符串添加到字符串的ArrayList中,然后在for循环之后使用:
suggestionAdapter = new ArrayAdapter<String>(this, R.layout.list, suggestions);
AutoCompleteTextView searchText = //findView...
searchText.setAdapter(suggestionAdapter);
希望这有效。