Как решить, что адаптер getFilter не может фильтровать в определенные c строки? - PullRequest
0 голосов
/ 02 августа 2020

У меня проблема с адаптером 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;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...