下面列出了android.widget.Filter#FilterResults ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@NonNull
@Override
protected Filter.FilterResults performFilteringImpl(CharSequence constraint) {
Filter.FilterResults results = new Filter.FilterResults();
if (TextUtils.isEmpty(constraint) || TextUtils.isEmpty(constraint.toString().trim())) {
results.count = -1;
return results;
}
String str = constraint.toString().trim();
List<MusicItem> result = new ArrayList<>();
int size = getNonFilteredCount();
for (int i = 0; i < size; i++) {
MusicItem item = getNonFilteredItem(i);
if (
check(str, item.title())
|| check(str, item.album())
|| check(str, item.artist())
) {
result.add(item);
}
}
results.count = result.size();
results.values = result;
return results;
}
@Override
protected Filter.FilterResults performFiltering(CharSequence constraint) {
List<String> matchingTimezones = new ArrayList<>();
if (TextUtils.isEmpty(constraint)) {
matchingTimezones.addAll(TimezoneAdapter.this.mTimezones);
} else {
String pattern = constraint.toString().toLowerCase().trim();
for (String timezone : TimezoneAdapter.this.mTimezones) {
if (timezone.toLowerCase().contains(pattern)) {
matchingTimezones.add(timezone);
}
}
}
Filter.FilterResults filterResults = new Filter.FilterResults();
filterResults.values = matchingTimezones;
filterResults.count = matchingTimezones.size();
return filterResults;
}
@Override
protected Filter.FilterResults performFiltering(CharSequence constraint) {
Filter.FilterResults results = new FilterResults();
ArrayList<RegexQueryResult> resultsList = new ArrayList<RegexQueryResult>();
if (rawFiltering) {
filterRaw(resultsList, constraint);
} else {
filterWithRegex(resultsList, constraint);
}
Collections.sort(resultsList);
results.values = resultsList;
results.count = resultsList.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, Filter.FilterResults results) {
Cursor oldCursor = mClient.getCursor();
if (results.values != null && results.values != oldCursor) {
mClient.changeCursor((Cursor) results.values);
}
}
protected void publishResults(CharSequence constraint, Filter.FilterResults results) {
regexQueryResults = ((ArrayList<RegexQueryResult>) results.values);
notifyDataSetChanged();
}