[英]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.