如何更改 cardview day 的背景颜色?

how to change backgrounds color of cardview day wise?

我正在开发一个应用程序。在该应用程序中,有一个卡片视图。我想每天更改卡片视图的背景颜色。

赞 星期一 = 红色 星期二 = 绿色

直到星期天!从下周一开始,它会从第一个开始,比如 Monday=red color

有什么想法吗?如何做到这一点?

我试过了

Calendar calendar = Calendar.getInstance();
        String currentDate = DateFormat.getDateInstance(DateFormat.FULL).format(calendar.getTime());

它给我这样的输出

Sunday, April 19, 2020

现在,我该如何使用它来更改背景颜色?

int dayOfWeek=bday.get(Calendar.DAY_OF_WEEK); // Returns 3,星期二

然后相应地使用 if ,else if 语句针对不同日期的不同颜色。

使用 SimpleDateFormat 将日期和时间格式化为人类可读的字符串,并与用户的语言环境相关。

获取当前星期几的示例(例如 "Sunday"):

Calendar c= Calendar.getInstance();
SimpleDateFormat sd=new SimpleDateFormat("EEEE");
String dayofweek=sd.format(c.getTime());

现在更改背景颜色:

if (dayofweek.equals("Saturday")) {
    cardview.setBackgroundColor(getResources().getColor(color.white));
}

可以通过以下代码实现

Calendar calendar = Calendar.getInstance();
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);


switch (dayOfWeek) {
  case Calendar.MONDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_monday));
    break;
  case Calendar.TUESDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_tuesday));
    break;
  case Calendar.WEDNESDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_wednesday));
    break;
  case Calendar.THURSDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_thursday));
    break;
  case Calendar.FRIDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_friday));
    break;
  case Calendar.SATURDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_saturday));
    break;
  case Calendar.SUNDAY:
    cardView.setBackground(ContextCompat.getColor(context, R.color.color_sunday));
    break;
}