How correctly filtering a CostumAdapter for a AutoCorrectTextView

49 Views Asked by At

How can I still filter Results when I delete some output, while using a Custom Adapter?

private ArrayList<City> items, suggestions;
private Context mContext;
protected CityAdapter(@NonNull Context context, int resource, @NonNull ArrayList<City> cities) {
    super(context, resource, cities);
    this.items=cities;
    this.mContext = context;
    suggestions = new ArrayList<City>();
}

This is my code on the Filter On the Adapter:

     @Override
                    protected FilterResults performFiltering(CharSequence constraint) {
                        FilterResults results = new FilterResults();
                        if (constraint != null){
                            ArrayList<City> suggestions = new ArrayList<City>();
                            for (City city : citys) {
                                //Decide Later
                                // Note: change the "contains" to "startsWith" if you only want starting matches
                                if (city.getName().toLowerCase().contains(constraint.toString().toLowerCase())) {
                                    suggestions.add(city);
                                }
                                results.values = suggestions;
                                results.count = suggestions.size();
                            }
                        }
                        return results;
                    }
    @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                clear();
                if (results != null && results.count > 0) {
                    // we have filtered results
                    addAll((ArrayList<City>) results.values);
                } else {
                    // no filter, add entire original list back in
                    addAll(citys);
                }
                notifyDataSetChanged();
            }

enter image description here

As you can see when i delete a char the auto-complete doesn't give the expected value.

0

There are 0 best solutions below