android 中没有数据 toast,而搜索结果不匹配
No data toast in android while search results do not match
我已经实现了可过滤。
我检查了 onPublished
上的过滤器结果,即 if(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;
}
}
};
}
你也应该这样做
filterResults.count = recentUserArrayListArrayListTemp.size();
在你的performFiltering
我已经实现了可过滤。
我检查了 onPublished
上的过滤器结果,即 if(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;
}
}
};
}
你也应该这样做
filterResults.count = recentUserArrayListArrayListTemp.size();
在你的performFiltering