0

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ループの外側(ループの直後など)の配列リストに文字列を追加すると、提案を確認できます。過去2時間、私を悩ませてきました。任意の提案をいただければ幸いです。

そして、forループに入力している既知のテキストの1つを入力していると信じてください。

どうも!ラフル。

4

2 に答える 2

0

forループの後に次の行を置きます。

suggestionAdapter.notifyDataSetChanged();

または 、最初のコードに次の行を入れます。

suggestionAdapter.setNotifyOnChange(true)

詳細 setNotifyOnChange(boolean)notifyDataSetChanged()

于 2012-07-29T15:58:40.467 に答える
0

forloopの前にアダプターを設定しないでください。すべての文字列を文字列のArrayListに追加し、forループの後に次を使用します。

suggestionAdapter = new ArrayAdapter<String>(this, R.layout.list, suggestions);
AutoCompleteTextView  searchText = //findView...
searchText.setAdapter(suggestionAdapter);

これがうまくいくことを願っています。

于 2012-07-29T16:27:22.197 に答える