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();
}
As you can see when i delete a char the auto-complete doesn't give the expected value.
