我每隔3/4字母动态更新一次AutoCompleteTextView。
出于某种原因,大约有5-10%的时间用户键入第三个字母,虽然我确定我正在制作一个有效的arraylist并填充AutoCompleteTextView,但它并不显示特殊情况。我注意到的一致意思是未显示的单词列表长度为5-15(其他范围为50 +)
知道发生了什么事吗?我是否遗漏了一些关于AutoCompleteTextView的内容,如果数据主义者不那么大,那么它不认为显示10个左右的建议值得吗?我应该添加不相关的文件管理器数据还是会影响性能?感谢
以下是一些相关的源代码..
Textwatcher for text view检查;
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();
}
答案 0 :(得分:0)
事实证明,如果我的动态加载列表非常小并且我的原始列表(来自我的RES文件夹)非常大(大约500个),则会发生一个奇怪的故障。当动态加载的列表很大时,它不会出现故障,也许它会给AutoCompleteTextView足够的时间在加载时显示建议?不确定。
无论如何,解决方案是降低我在res文件夹中的arraylist的原始大小