在我实施Android Studio中的回收视图教程后。
我使用的文件适配器文件:
package com.emilhamep.ilham_hp.diamondmaterial;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Collections;
import java.util.List;
public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.MyViewHolder>{
private LayoutInflater inflater;
List<Information> data= Collections.emptyList();
public RecycleAdapter(Context context,List<Information> data){
inflater=LayoutInflater.from(context);
this.data=data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.custom_row,parent,false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Information current=data.get(position);
holder.title.setText(current.title);
holder.icon.setImageResource(current.iconId);
}
@Override
public int getItemCount() {
return data.size();
}
class MyViewHolder extends RecyclerView.ViewHolder{
TextView title;
ImageView icon;
public MyViewHolder(View itemView) {
super(itemView);
title= (TextView) itemView.findViewById(R.id.list_item);
icon= (ImageView) itemView.findViewById(R.id.list_icon);
}
}
}
我在方法onBindViewHoder
中收到错误:
有没有人在以前实施回收视图时遇到过与我类似的错误?
答案 0 :(得分:0)
您有 NullPointerException ,因为holder.title
null 。
检查您的custom_row.xml
,您需要TextView
list_item
作为 id (android:id="@+id/list_item"
)。
或者,使用list_item
的正确 id 更改title= (TextView) itemView.findViewById(R.id.list_item);
中的TextView
(如果已有)。