AutoCompleteTextView with Custom Adapter filtering not working

半腔热情 提交于 2019-11-28 13:02:59
Shanmugam

In Constructor no need to use add all , you can assign like this and create one more in adapter ,

List<String> suggestionItems = null;

//constructor should be like this 

this.items = new ArrayList<>(objects);
this.originalItems = new ArrayList<>(objects);
this.suggestionItems = new ArrayList<>();

and filter should be

class MyFilters extends Filter {
    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        if (constraint != null)
        {
            suggestionItems .clear();
            for (int i = 0, l = originalItems.size(); i < l; i++) {
                String item = originalItems.get(i);
                if (item.toString().toLowerCase().contains(constraint))
                    suggestionItems .add(item);
            }
            FilterResults filterResults = new FilterResults();
            filterResults.values = suggestionItems ;
            filterResults.count = suggestionItems .size();
            return filterResults;
        }
        else
        {
            return new FilterResults();
        }
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {
        if (results != null && results.count > 0) {
            items.clear();
            items = (ArrayList<String>) results.values;
            notifyDataSetChanged();
        }
        else {
            items .addAll(originalItems );
        }
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!