将新的父对象添加到ExpandableRecyclerAdapter

时间:2015-12-29 12:02:08

标签: android generics android-recyclerview expandablerecyclerview

我在项目中使用ExpandableRecyclerView来嵌套RecyclerView。它工作得很好,除非您需要动态更新父列表。

我的项目有View类作为父对象(和扩展Product)。我从API获取产品列表,因此需要清除当前列表并添加我有的列表。

在ExpandableRecyclerAdapter中,我尝试过这种方法 -

ParentListItem

然而,它给出了一个奇怪的通用错误

public void onDataChanged(ArrayList<Product> parentObjects) {
    this.getParentItemList().clear();
    this.getParentItemList().addAll(parentObjects);

    this.notifyItemRangeChanged(0, parentObjects.size() - 1);
}

parentItemList的类型为Error:(60, 33) error: no suitable method found for addAll(ArrayList<Product>) method List.addAll(Collection<? extends CAP#1>) is not applicable (actual argument ArrayList<Product> cannot be converted to Collection<? extends CAP#1> by method invocation conversion) method List.addAll(int,Collection<? extends CAP#1>) is not applicable (actual and formal argument lists differ in length) method Collection.addAll(Collection<? extends CAP#1>) is not applicable (actual argument ArrayList<Product> cannot be converted to Collection<? extends CAP#1> by method invocation conversion) where CAP#1 is a fresh type-variable: CAP#1 extends ParentListItem from capture of ? extends ParentListItem ,因此根据this question,它无法向现有列表添加任何内容,因为没有setter存在,我可以& #39; t也替换完整列表。

我尝试创建一个新的List<? extends ParentListItem>对象并将其设置为RecyclerView的新适配器。虽然它有效,但我不认为这是一个很好的方法来替换整个适配器,无论何时有新数据出现。

那么有没有其他方法可以一次性或逐个更新父对象列表?

0 个答案:

没有答案