【问题标题】:How to pass the List from the Recylerview to the Class如何将列表从 Recyclerview 传递给类
【发布时间】:2016-11-03 11:47:16
【问题描述】:

我想将 Recylerview 中的 arraylist 传递给类,我该如何实现呢?

这是我的自定义过滤器类

@Override
protected FilterResults performFiltering(CharSequence constraint) {

    FilterResults filterResults=new FilterResults();
    if(constraint!=null && constraint.length()>0){
        constraint=constraint.toString().toUpperCase();
         filterArrayList=new ArrayList<>();
        for(int i=0;i<arrayList.size();i++){
            if(arrayList.get(i).getId().toUpperCase().contains(constraint)){
                filterArrayList.add(arrayList.get(i));
            }
        }

        filterResults.count=filterArrayList.size();
        filterResults.values=filterArrayList;
    }else{

        filterResults.count= arrayList.size();
        filterResults.values=arrayList;
    }
    return filterResults;
}

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
    //Here i want the arraylist from the recylerview without making the arraylist static
    // adapter.items= (List<OrderPogo>) results.values;
    adapter.notifyDataSetChanged();
}

【问题讨论】:

  • 在这里查看我的答案。在自定义适配器类中有一个名为 filter() 的方法,当您从 Activity 调用它时,它会为您提供 ArrayList。
  • 或者只是让它静态:-D
  • 我想在 publishResults 中加入数组列表
  • 我不想做静态所以我写在评论上

标签: android arraylist interface


【解决方案1】:

您实际上应该在 performFiltering 方法上获取 arrayList。过滤列表后,最后可以写

filterResults.values = yourList;
filterResults.count = yourList.size();

然后

return filterResults

您将通过

在 publishResults 方法上获得过滤后的结果列表
result.values

在 Filter 类中访问您的 arrayList 的最佳方法是在 RecycleView 中创建您的 Filter 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2012-04-18
    • 2019-03-24
    • 1970-01-01
    • 2022-10-30
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多