3文字目と4文字目ごとにAutoCompleteTextViewを動的に更新しています。
何らかの理由で、ユーザーが3番目の文字を入力する時間の約5〜10%は、有効な配列リストを作成してAutoCompleteTextViewにデータを入力していることは確かですが、一意の場合には表示されません。一貫していることに気付いたのは、表示されなかった単語のリストが長さ5〜15(その他の範囲は50以上)のものであったことです。
何が起こっているのか分かりますか?AutoCompleteTextViewについて何かが足りないのでしょうか。データリストがそれほど大きくない場合、10個程度の提案を表示する価値があるとは思われません。無関係なファイラーデータを追加する必要がありますか、それともパフォーマンスに影響しますか?ありがとう
関連するソースコードを次に示します。
テキストビューのTextwatcherはそれをチェックします。
if (((start + count) == 3) || ((start + count) == 4)
|| ((start == 3) && (before >= 1))) {
if (!last.equals(s)) {
thread = new Thread(new AutoCompleteThread(s));
thread.start();
}
}
カスタムスレッドでは、単語をグループ化します。次に、テキストビューとアダプタでこれを呼び出します。
if(words.size() > 0)
{
last = s;
// adapter.clear();
// for(String e : words)
// adapter.add(e);
// adapter.notifyDataSetChanged();
adapter = new ArrayAdapter<String>(
getActivity(), android.R.layout.simple_list_item_1, words);
textView.setAdapter(adapter);
textView.showDropDown();
}