是否有更有效的方法为RecyclerView文本添加不同的颜色?

时间:2017-11-04 13:45:03

标签: android android-recyclerview recycler-adapter

虽然这种方法有效并且完成了工作,但我觉得必须有一种更有效的方法。我试图制作一个包含颜色的数组,并使用for循环添加它们,但未能使其正常工作...任何建议都将非常感激。请参阅下面的代码。感谢

@Override
    public void onBindViewHolder(LineViewHolder holder, int position) {
        holder.lineName.setText(lineList.get(position).getLineName());
        holder.lineStatus.setText(lineList.get(position).getLineStatus());


        if(position==0)
            holder.lineName.setBackgroundColor(Color.RED);
        else if(position==1)
            holder.lineName.setBackgroundColor(Color.BLUE);
        else if(position==2)
            holder.lineName.setBackgroundColor(Color.GREEN);
        else if(position==3)
            holder.lineName.setBackgroundColor(Color.YELLOW);
        else if(position==4)
            holder.lineName.setBackgroundColor(Color.DKGRAY);
        else if(position==5)
            holder.lineName.setBackgroundColor(Color.BLUE);
        else if(position==6)
            holder.lineName.setBackgroundColor(Color.RED);
        else if(position==7)
            holder.lineName.setBackgroundColor(Color.DKGRAY);
        else if(position==8)
            holder.lineName.setBackgroundColor(Color.YELLOW);
        else if(position==9)
            holder.lineName.setBackgroundColor(Color.GREEN);
        else if(position==10)
            holder.lineName.setBackgroundColor(Color.YELLOW);
        else if(position==11)
            holder.lineName.setBackgroundColor(Color.RED);
        else if(position==12)
            holder.lineName.setBackgroundColor(Color.DKGRAY);
        else if(position==13)
            holder.lineName.setBackgroundColor(Color.GREEN);


    }

1 个答案:

答案 0 :(得分:1)

1.添加到Integer[]数组的颜色

2.在代码中使用holder.lineName.setBackgroundColor(colors[position]);

试试这样。

Integer[] colors = {Color.RED,Color.BLUE,Color.GREEN};
holder.lineName.setBackgroundColor(colors[position]);