获取List <mymodelclass>的类型

时间:2017-11-22 13:30:16

标签: android list generics android-recyclerview adapter

我在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<>();

我将三种类型的对象传递给它

  1. List<MyCategory>
  2. MyPromotion
  3. List<MyItem>
  4. 在调用上述方法时,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。 任何帮助将不胜感激。

0 个答案:

没有答案