防止AutocompleteTextView减少结果

4
我在我的应用程序中有一个AutoCompleteTextView,但是下拉菜单中的每个项目背后都有比显示更多的东西。
我为AutoCompleteTextView拥有自己的ArrayAdapter,当用户开始输入任何内容时,自动完成文本视图开始减少下拉列表。这就是我想要改变的。每次用户键入一个新字母时,我都会从数据库中进行新的搜索,并希望在弹出的下拉菜单中显示所有这些内容,即我不希望autocompleteTextView由于用户正在输入而减少列表。
所以,我的问题是,是否有一种方法可以阻止autocompleteTextView减少结果,或者只需使用自己的下拉菜单进行编辑文本视图就更容易?
谢谢。

我认为EditText选项比autoCompleteTextView更适合实现这个功能。 - Mr.Sandy
1个回答

5

最终,我找到了一个完美的解决方案。由于我花了很多时间才使其工作,所以想分享一下。

AutoCompleteTextView没有任何方法来设置不过滤或使用自定义过滤器的方式。

正如我所写的,我有一个用于AutoCompleteTextView的自定义ArrayAdapter。所以我所做的是在ArrayAdapter类中,重写getFilter函数

并给予在这里发布答案的人信任。

@Override
  public Filter getFilter() {
    return new KNoFilter();
}

private class KNoFilter extends Filter {

    @Override
    protected FilterResults performFiltering(CharSequence arg0) {
        FilterResults result = new FilterResults();
            result.values = searchResults;
            result.count = searchResults.size(); 
        return result;
    }

    @Override
    protected void publishResults(CharSequence arg0, FilterResults arg1) {
        notifyDataSetChanged();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接