Элементы отображаются, пока я ничего не наберу в SearchView, затем элементы исчезнут.
Кажется, что размер fullOffers становится равным нулю, когда я что-то печатаю; потому что когда я помещаю тост сообщение, и оно не появляется, когда я помещаю его в цикл for.
Я добавил метод getFilter к адаптеру RecyclerView и связал его с SearchView в fragemnt.
public class OffersAdapter extends RecyclerView.Adapter<OffersAdapter.ViewHolder> implements Filterable{
Context context;
List<offer> offers;
List<offer> fullOffers;
public OffersAdapter(List Offers,Context mContext){
context = mContext;
offers = Offers;
fullOffers = new ArrayList<>(Offers);
}
public Filter getFilter() {
return exampleFilter;
}
private Filter exampleFilter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
ArrayList<offer> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(offers);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
Toast.makeText(context,"item added",Toast.LENGTH_LONG).show(); // the toast message appears
for (offer item : fullOffers) {
Toast.makeText(context,"item added",Toast.LENGTH_LONG).show(); // it doesn't appear
if (item.getTitle().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults results = new FilterResults();
results.values = filteredList;
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
offers.clear();
offers.addAll((List) results.values);
notifyDataSetChanged();
}
};
}
Я ожидаю, что элементы будут загружены в список "предложений" и появятся