Изменение цвета текста в коде java
Мне необходимо реализовать следующее: Цвет текста в элементах RecyclerView изменяется в зависимости от даты. Если дата меньше текущей - красный, если за 3 дня - желтый, всё остальное без изменений(т.е. черный) Но у меня какая беда, цвет меняется у первый элементах в RecyclerView, то есть подсвечивает красным и желтый, но в конце списка просто рандомно элементы тоже красятся в красный и желтый цвет. Помоги решить проблему. Debug прогонял, там всё нормально. все if срабатывают как надо. Ниже будет код (p.s. всё сделал в адаптере RecyclerView).
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.setData(mainArray.get(position).getTitle());
holder.tvDatetime.setText(mainArray.get(position).getDatetime());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
Date date1 = new Date();
Date dateBeforce = new Date(date1.getTime() + 3 * 24 * 3600 * 1000);
try {
date = format.parse(mainArray.get(position).getDatetime());
} catch (ParseException e) {
e.printStackTrace();
}
int result = date.compareTo(date1);
int result1 = date.compareTo(dateBeforce);
if (result < 0){
holder.tvDatetime.setTextColor(Color.RED);
}
else if(result == 1){
if (result1 < 0){
holder.tvDatetime.setTextColor(Color.YELLOW);
}
}
}
Ответы (1 шт):
Ответ просто, и просто нужно было разобраться, всегда при использовании оператора if в адаптере RecylerView необходимо указывать else при котором возвращать исходное значение.