可能是一个非常简单的解决方案,但我无法弄清楚。我希望recyclerView的itemView的背景颜色根据在Arraylist中设置的textView的值进行更改。
public void onBindViewHolder(final MyViewTwoHolder holder, int position) {
holder.tvBrand.setText((CharSequence) modelTwoArrayList.get(position).getBrand());
holder.tvImage.setImageResource(Integer.parseInt(String.valueOf(modelTwoArrayList.get(position).getImage())));
holder.tvUnits.setText(String.valueOf(modelTwoArrayList.get(position).getNumberCases()));
holder.tvPosisie.setText(String.valueOf(modelTwoArrayList.get(position).getPosisie()));
if(tvPosisie == 6) {
holder.itemView.setBackgroundColor(Color.RED);
}
else if(tvPosisie == 7) {
holder.itemView.setBackgroundColor(Color.YELLOW);
} else if (tvPosisie == 4) {
holder.itemView.setBackgroundColor(Color.BLUE);
} else holder.itemView.setBackgroundColor(Color.WHITE);
}
什么都没发生。该应用程序不会崩溃,但背景颜色保持白色。谢谢您的时间。
答案 0 :(得分:1)
替换
tvPosisie == 6
与
tvPosisie.getText().equals("6");
希望这会有所帮助
答案 1 :(得分:1)
您应将代码的一部分更改为以下内容:
if ("6".equals(holder.tvPosisie.getText().toString())) {
holder.itemView.setBackgroundColor(Color.RED);
} else if("7".equals(holder.tvPosisie.getText().toString())) {
holder.itemView.setBackgroundColor(Color.YELLOW);
} else if ("4".equals(holder.tvPosisie.getText().toString())) {
holder.itemView.setBackgroundColor(Color.BLUE);
} else {
holder.itemView.setBackgroundColor(Color.WHITE);
}
答案 2 :(得分:0)
更改您的ifs:
if (tvPosisie.getText().toString() == "6")
...