Android:AutocompleteTextView奇怪的行为

时间:2012-07-29 15:38:58

标签: android autocompletetextview

我在使用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! 拉胡

2 个答案:

答案 0 :(得分:0)

在for循环之后添加以下行。

suggestionAdapter.notifyDataSetChanged();

将以下行放在第一个代码中。

suggestionAdapter.setNotifyOnChange(true)

更多细节 setNotifyOnChange(boolean)notifyDataSetChanged()

答案 1 :(得分:0)

不要在for循环之前设置适配器。将所有字符串添加到字符串的ArrayList中,然后在for循环之后使用:

suggestionAdapter = new ArrayAdapter<String>(this, R.layout.list, suggestions);
AutoCompleteTextView  searchText = //findView...
searchText.setAdapter(suggestionAdapter);
希望这有效。