【问题标题】:Dynamically updating AutoCompleteTextView sometimes doesn't show suggestions动态更新 AutoCompleteTextView 有时不显示建议
【发布时间】:2012-10-09 10:34:36
【问题描述】:

我每隔 3/4 个字母动态更新我的 AutoCompleteTextView。

由于某种原因,大约有 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();
                    }

【问题讨论】:

    标签: android textview adapter


    【解决方案1】:

    如果我的动态加载列表非常小并且我的原始列表(来自我的 RES 文件夹)非常大(大约 500 个),就会经常发生奇怪的故障。当动态加载的列表很大时它不会出现故障,也许它给了 AutoCompleteTextView 足够的时间来在加载时显示建议?不确定。

    无论如何,解决方案是降低我的 res 文件夹中 arraylist 的原始大小

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多