RecyclerViewAdapter中的itemview可能不是null错误 [英] itemview may not be null error in RecyclerViewAdapter
问题描述
我正在尝试在recyclerview中添加多个视图.所以首先我添加了getItemView方法,
I'm trying to add multiple views in a recyclerview. So first I added getItemView method,
@Override
public int getItemViewType(int position) {
return type.get(position);
}
然后在oncreateviewholder方法中添加了这个
Then in the oncreateviewholder method I added this
@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
错误...
But when run it it's giving me java.lang.IllegalArgumentException: itemView may not be null
error...
推荐答案
您的type
集合返回的错误类型不属于此switch
,或者您的错误位于其他地方.
Either your type
collection returns wrong types that do not fall into this switch
or your error lies somewhere else.
这是我的适配器的摘录,可以正常运行.
This is a snippet from my adapter and it works perfectly fine.
@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));
}
尝试向此开关添加默认大小写,然后查看它是否解析布局.
Try adding a default case to this switch and see if it parses the layout then.
并且请说明代码中的types
是什么以及如何对其进行初始化
and please clarify what types
is in your code and how you initialize it
这篇关于RecyclerViewAdapter中的itemview可能不是null错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!