繁体   English   中英

RecyclerViewAdapter中的itemview可能不是null错误

[英]itemview may not be null error in RecyclerViewAdapter

我正在尝试在recyclerview中添加多个视图。 所以首先我添加了getItemView方法,

 @Override
    public int getItemViewType(int position) {

            return type.get(position);

    }

然后在oncreateviewholder方法中添加了这个

        @Override
            public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View v = null;
                switch (viewType){

                    case 0:
                        v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.view1, parent, false);



                    case 1:
                        v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.view2, parent, false);;




                    case 2:
                        v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.view3, parent, false);


    }

    return new ViewHolder(v);

}

但是运行时会给我java.lang.IllegalArgumentException: itemView may not be null错误...

您的type集合返回的错误类型不属于此switch或者您的错误位于其他地方。

这是我的适配器的摘录,效果很好。

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    int layoutResId = (viewType == VIEW_TYPE_HEADER) ? R.layout.item_header : R.layout.item_content;
    return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(layoutResId, parent, false));
}

尝试向此开关添加默认大小写,然后查看它是否解析布局。

编辑:并请澄清您的代码中是什么types以及如何初始化它

适配器的getItemViewType()返回视图类型的number 由于具有3个视图( view1, view2, view3 ),因此应从getItemViewType()方法返回3个getItemViewType()

尝试这个:

@Override
public int getItemViewType(int position) {
        return 3;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM