如何获得星期一等当前的一周,并在android中进行比较

时间:2013-12-05 08:06:36

标签: java android date

星期一,星期二,我有7张不同的图片....周日。现在我想做的是当屏幕打开然后当前日图像应该是不同的颜色。

我尝试使用以下代码,但没有获得不同的颜色。

SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);

TextView textView = (TextView) findViewById(R.id.textView1);
textView.setText(dayOfTheWeek);

现在在textview中,我将在星期四到今天星期四。现在我已经给出了如下条件。

    imageViewMon = (ImageView) findViewById(R.id.mon);
    imageViewTue = (ImageView) findViewById(R.id.tue);
    imageViewWed = (ImageView) findViewById(R.id.wed);
    imageViewThu = (ImageView) findViewById(R.id.thu);
    imageViewFri = (ImageView) findViewById(R.id.fri);
    imageViewSat = (ImageView) findViewById(R.id.sat);
    imageViewSun = (ImageView) findViewById(R.id.sun);



    if (dayOfTheWeek == "Monday") {
        imageViewMon.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Tuesday") {
        imageViewTue.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Wednesday") {
        imageViewWed.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Thursday") {
        imageViewThu.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Friday") {
        imageViewFri.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Saturday") {
        imageViewSat.setColorFilter(0xFFFF3D60);
    }
    if (dayOfTheWeek == "Sunday") {
        imageViewSun.setColorFilter(0xFFFF3D60);
    }

但我没有得到我想要的图像颜色,今天的文字视图显示没有任何反应,但我的图像中没有得到不同的颜色。

提前致谢。

4 个答案:

答案 0 :(得分:4)

试试这个:

Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_WEEK);

switch(day) {
    case Calendar.MONDAY:
        imageViewMon.setColorFilter(0xFFFF3D60);
        break;
        ...
}

答案 1 :(得分:1)

试试这个:

Calendar c = Calendar.getInstance();
int d = c.get(Calendar.DAY_OF_WEEK);
switch (d) {
    case Calendar.MONDAY:
        imageViewMon.setColorFilter(0xFFFF3D60);
        break;
        // ...
}

您的代码中存在两个问题:

  1. 比较字符串需要使用equals(),而不是==
  2. 根据区域设置,用户运行您的应用,它永远不会匹配,因为“星期一”不是“Montag”或任何其他翻译。

答案 2 :(得分:1)

Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_WEEK);

switch(day) {
    case Calendar.MONDAY:
        ...
}

您必须将字符串与if(string1.compareTo(string2) == 0) { ...}

进行比较

答案 3 :(得分:0)

问题已经回答了,但你们所有人如何使用if或switch ...使用所需值的数组(或集合...)(字符串,颜色,你想要的任何东西)并获得当天的数字,然后使用数字作为该数组中的位置。这样你就可以只切换一个数组,而不是重写所有长ifs /开关等。