【问题标题】:Android RecyclerView Multiple FilterAndroid RecyclerView 多重过滤器
【发布时间】:2019-02-11 04:28:51
【问题描述】:

我需要在我的项目中使用多重过滤。例如,我有一个任务页面。我想在这个页面上过滤。优先级、责任人、开始日期、结束日期等。我需要使用标准进行多重过滤,例如。什么是正确的方法?例如,在 1 月 10 日到 1 月 12 日之间,我想列出低优先级和中等优先级的任务。

【问题讨论】:

    标签: android filter android-recyclerview


    【解决方案1】:

    一段时间以来遇到同样的问题,我解决了,你可以使用这个功能添加多个过滤器。

     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;
    
    }
    

    首先,您必须从列表中获取所有项目并检索要对其进行过滤的属性,然后检查每个字段是否为空,如果不为空,则将其与每个字段的相同属性进行比较项目,最后检查是否是任何字段中的插入值。

    祝你好运!

    【讨论】:

    • 你的方法正好对我有帮助。谢谢:)
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2021-11-12
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2020-04-07
    相关资源
    最近更新 更多