Android RecyclerView Multiple Filter - PullRequest
0 голосов
/ 17 января 2019

Мне нужно использовать многократную фильтрацию в моем проекте.Например, у меня есть страница ЗАДАЧ.Я хочу фильтровать на этой странице.Приоритет, ответственные лица, дата начала, дата окончания и т. Д. Мне нужно выполнить многократную фильтрацию по таким критериям, как.Какой правильный метод?Например, в период с 10 по 12 января я хотел бы перечислить задачи с низким и средним приоритетом.

1 Ответ

0 голосов
/ 10 февраля 2019

Я столкнулся с той же проблемой с определенного периода, и я решил ее, вы можете использовать эту функцию для добавления нескольких фильтров.

 public List<Tasks> multipleFilter(String PriorityFilter,String startDateFilter,String endDateFilter,List<Tasks> listAllTasks)
{
    List<Tasks> listTasksAfterFiltering = new ArrayList<>();
    for(Tasks task_obj : listAllTasks)
    {
        String PriorityTask = task_obj.getPriority();
        String startDateTask = task_obj.getStartDate();
        String endDateTask = task_obj.getEndDate();

        if(PriorityFilter.equals(PriorityTask) || PriorityFilter.isEmpty())
            if(startDateFilter.equals(startDateTask) || startDateFilter.isEmpty())
                if(endDateFilter.equals(endDateTask) || endDateFilter.isEmpty())
                    if(!PriorityFilter.isEmpty() || !startDateFilter.isEmpty() || !endDateFilter.isEmpty()){
                        listTasksAfterFiltering.add(task_obj);
                    }
    }

    return listTasksAfterFiltering;

}

Прежде всего, вы должны получить все элементы из вашего списка и получить атрибуты, для которых вы хотите создать фильтр, затем проверить каждое поле, если оно пустое или нет, и, если нет, сравнить его с тем же атрибутом для каждого. элемент, наконец, проверьте, было ли значение вставки в каком-либо поле.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...