星期一,星期二,我有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);
}
但我没有得到我想要的图像颜色,今天的文字视图显示没有任何反应,但我的图像中没有得到不同的颜色。
提前致谢。
答案 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;
// ...
}
您的代码中存在两个问题:
equals()
,而不是==
。答案 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 /开关等。