虽然这种方法有效并且完成了工作,但我觉得必须有一种更有效的方法。我试图制作一个包含颜色的数组,并使用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);
}
答案 0 :(得分:1)
1.添加到Integer[]
数组的颜色
2.在代码中使用holder.lineName.setBackgroundColor(colors[position]);
试试这样。
Integer[] colors = {Color.RED,Color.BLUE,Color.GREEN};
holder.lineName.setBackgroundColor(colors[position]);