Я реализовал фильтруемый.Я проверил результаты фильтра на onPublished
, то есть, если (filterResults.count==0
) и тост там, но он показывает тост каждый раз, когда searchtext
совпадает или нет, см. Ссылку ниже,
Вот мой кодна адаптере:
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
Log.d("cndbdhdh",charString);
if (charString.isEmpty()) {
recentUserArrayListArrayListTemp = recentUserArrayListArrayList;
} else {
ArrayList<MostRecentUsers.RecentUserList> filteredList = new ArrayList<>();
for (MostRecentUsers.RecentUserList androidVersion : recentUserArrayListArrayList) {
if (androidVersion.getName().toLowerCase().contains(charString) || androidVersion.getPhone().toLowerCase().contains(charString) ) {
filteredList.add(androidVersion);
}
}
recentUserArrayListArrayListTemp = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = recentUserArrayListArrayListTemp;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
notifyDataSetChanged();
if (filterResults.count==0){
Toast.makeText(activity, "no data", Toast.LENGTH_SHORT).show();
}else {
recentUserArrayListArrayListTemp = (ArrayList<MostRecentUsers.RecentUserList>) filterResults.values;
}
}
};
}