是否可以创建一个动态的RecyclerView适配器来接受任何对象列表<对象>的列表?

时间:2018-10-08 15:06:24

标签: android android-recyclerview

情况1: 在适配器构造函数中发送productName时,在View中显示List<Products> productList的列表。

情况2: 在适配器构造函数中发送categoryName时,在View中显示List<Category> categoryList的列表。

两种情况下都必须使用相同的RecyclerView适配器。

适配器可能具有List<Object> objectList。但是如何在View

中显示不同对象的不同属性

1 个答案:

答案 0 :(得分:0)

检查类型:

@Override
public void onBindViewHolder(WhateverHolder holder, int position) {
    Object item = itemsList.get(position);

    if (item instanceof Products) {
        Product product = (Product) item;
        //populate the ViewHolder with the information
    } else if (item instanceof Category) {
        Category category = (Category) item;
        //populate the ViewHolder
    } else {
        throw IllegalArgumentException("Invalid item: " + item.getClass().getCanonicalName()); //this is optional 
    }
}