Textview值必须使用if语句更改itemView背景颜色

时间:2018-06-19 21:53:41

标签: java android android-recyclerview background

可能是一个非常简单的解决方案,但我无法弄清楚。我希望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);
}

什么都没发生。该应用程序不会崩溃,但背景颜色保持白色。谢谢您的时间。

3 个答案:

答案 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") ...