我的应用程序中有一个AutoCompleteTextView,但是DropDownMenu中每个项目的后面都比显示的内容多得多。

我为ArrayAdapter设置了自己的AutoCompleteTextView,并且当用户开始键入任何内容时,autocompleteTextView会开始减少下拉列表。这就是我要更改的。每次用户输入新字母时,我都会从database中进行新搜索,并希望在弹出的下拉菜单中显示所有字母,即我不希望autocompleteTextView减少列表由于用户正在输入。

因此,我的问题是,有没有一种方法可以阻止autocompleteTextView减少结果,还是仅使用我自己的下拉菜单进行编辑文本视图会更容易?

谢谢。

最佳答案

最后,我找到了一个完美的解决方案。只想分享一下,因为我花了很多时间来使它生效。

AutoCompleteTextView没有任何方法可以不设置过滤器,也没有任何使用自定义文件管理器的方法。

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

并给发布答案here的人们以信誉。

@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();
    }
}

10-07 19:15
查看更多