У меня проблема с адаптером getFilter. Недавно я попробовал сделать фильтр для моего продукта по трем ключевым словам: «Division», «District» и «ad_detail». Сначала фильтр, использующий разделение и район, отлично работает с использованием оператора if, а также я использовал текст счетчика, чтобы помочь мне сделать фильтр. Однако, когда я добавил ad_detail в оператор if, оператор if, похоже, не работает. Для ключевого слова ad_detail я использовал текст searchView, чтобы получить строку.
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if (constraint == null || constraint.length() == 0) {
filterResults.count = itemList.size();
filterResults.values = itemList;
} else {
String strSearch = constraint.toString().toLowerCase();
List<Item_All_Details> resultData = new ArrayList<>();
for (Item_All_Details item : itemList) {
if (item.getDivision().toLowerCase().equals(strSearch) || item.getAd_detail().toLowerCase().contains(strSearch)) {
resultData.add(item);
}
if (item.getDivision().toLowerCase().equals(strSearch) && item.getDistrict().toLowerCase().equals(strSearch) && item.getAd_detail().toLowerCase().contains(strSearch)) {
resultData.add(item);
}
filterResults.count = resultData.size();
filterResults.values = resultData;
}
}
return filterResults;
}