1
我在這裏跟着一個問題,在我的適配器是這樣實現的過濾器:Android的過濾器不向後工作
@NonNull
@Override
public Filter getFilter(){
return new Filter(){
@Override
protected FilterResults performFiltering(CharSequence constraint) {
String filterString = constraint.toString().toLowerCase();
FilterResults results = new FilterResults();
final List<Event> list = events;
int count = list.size();
final ArrayList<Event> nlist = new ArrayList<>(count);
String filterableString ;
for (int i = 0; i < count; i++) {
filterableString = list.get(i).getInterpretName();
if (filterableString.toLowerCase().contains(filterString)) {
nlist.add(list.get(i));
}
}
results.values = nlist;
results.count = nlist.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
clear();
for (Event item : (List<Event>) results.values) {
add(item);
}
notifyDataSetChanged();
}
};
}
,我這樣稱呼它:
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
adapter.getFilter().filter(s);
return true;
}
});
的問題是,當我從查詢中刪除一個字符,沒有任何變化。當我把它全部刪除時,我得到一個空列表
add notifyDataSetChanged()。 –
我應該在哪裏添加它? – Traabefi
Inside for Loop –