Я столкнулся с той же проблемой с определенного периода, и я решил ее, вы можете использовать эту функцию для добавления нескольких фильтров.
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;
}
Прежде всего, вы должны получить все элементы из вашего списка и получить атрибуты, для которых вы хотите создать фильтр, затем проверить каждое поле, если оно пустое или нет, и, если нет, сравнить его с тем же атрибутом для каждого. элемент, наконец, проверьте, было ли значение вставки в каком-либо поле.
Удачи!