我的应用程序中有一个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();
}
}