I want to search through RecyclerView, I have List (BaseOfCards is my getter&setter class)
My RecyclerViewAdapter<
I solved my problem
Make my class RecyclerViewAdapter implements Filterable
Add line private List
Add method getFilter in RecyclerViewAdapter
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
final FilterResults oReturn = new FilterResults();
final List results = new ArrayList();
if (orig == null)
orig = items;
if (constraint != null){
if(orig !=null & orig.size()>0 ){
for ( final BaseOfCards g :orig) {
if (g.getCardName().toLowerCase().contains(constraint.toString()))results.add(g);
}
}
oReturn.values = results;
}
return oReturn;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
items = (ArrayList)results.values;
notifyDataSetChanged();
}
};
Make MainActivity implements SearchView.OnQueryTextListener and change method onQueryTextChange :
@Override
public boolean onQueryTextChange(String newText) {
if ( TextUtils.isEmpty ( newText ) ) {
adapter.getFilter().filter("");
} else {
adapter.getFilter().filter(newText.toString());
}
return true;
}