与项目的不同的背景颜色的RecyclerView

时间:2018-04-06 16:23:54

标签: android android-recyclerview android-context

我需要让我的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 ( ) );
        }
}

1 个答案:

答案 0 :(得分:2)

此处未初始化上下文。您可以传递 ActivityName.this 来访问Adapter类中的上下文,同时在您的适配器中创建适配器对象活性。