我在recycylerView
中对多个布局视图进行了充气,并通过覆盖viewType
方法获取getItemViewType()
@Override
public int getItemViewType(int position) {
Log.e("getItemViewType ", myAllItemsList.get(position).getClass()+"");
if (myAllItemsList.get(position) instanceof MyCategory) {
return CATEGORY_VIEW;
} else if (myAllItemsList.get(position) instanceof MyPromotion) {
return PROMOTION_VIEW;
} else {
return ITEM_VIEW;
}
}
由于myAllItemsList
属于Object
private List<Object> myAllItemsList = new ArrayList<>();
我将三种类型的对象传递给它
List<MyCategory>
MyPromotion
List<MyItem>
在调用上述方法时,if condition
永远不会执行,因为myAllItemsList
中没有像MyCategory那样的内容,而是包含List<MyCategoty>
。当我尝试
myAllItemsList.get(position) instanceof List<MyCategory>
Android Studio说Illegal generic type for instenceof
。
所以我的问题是如何才能了解myAllItemsList
包含List<MyCategory>
,以便我return CATEGORY_VIEW
。
任何帮助将不胜感激。