我需要让我的RecyclerView项目的TextView显示多种背景颜色。我有5种不同的颜色,我需要在每5个项目后显示。 这是我的代码我会知道什么是错的? 我有这个错误:
java.lang.NullPointerException:尝试在android.support.v4.content.ContextCompat.getColor上的空对象引用上调用虚方法'int android.content.Context.getColor(int)'(ContextCompat.java:409 )
public class AdapterHumeurs extends RecyclerView.Adapter<AdapterHumeurs.MyViewholder> {
List<Humeur> listArray;
Context context;
public AdapterHumeurs(List<Humeur> List){
this.listArray = List;
}
@Override
public void onBindViewHolder(MyViewholder holder, int position) {
Humeur data = listArray.get ( position );
if(position % 5 == 0){
holder.TextLabelHumeur.setBackgroundColor(ContextCompat.getColor(context,R.color.color1));
}else if(position % 5 == 1){
holder.TextLabelHumeur.setBackgroundColor(ContextCompat.getColor(context,R.color.color2));
}else if(position % 5 == 2){
holder.TextLabelHumeur.setBackgroundColor(ContextCompat.getColor(context,R.color.color3));
}else if(position % 5 == 3){
holder.TextLabelHumeur.setBackgroundColor(ContextCompat.getColor(context,R.color.color4));
}else if(position % 5 == 4){
holder.TextLabelHumeur.setBackgroundColor(ContextCompat.getColor(context,R.color.color5));
}
holder.TextLabelHumeur.setText ( data.getLabelHumeur ( ) );
}
}
答案 0 :(得分:2)
此处未初始化上下文。您可以传递 此 或 ActivityName.this 来访问Adapter类中的上下文,同时在您的适配器中创建适配器对象活性。