我是android studio的基础入门者,正在开发气象应用程序。我想将图标图像的条件设置为天气条件。
例如:
sun = sun image
rain = rain image
snow = snow image
我知道开关盒可能有用:
switch (id) {
case "Raining":
icon = "rainIcon";
break;
case "Snowing":
icon = "snowIcon";
break;
case "Drizzling":
icon = "drizzlingIcon";
break;
case "Foggy":
icon = "fogIcon";
break;
case "Thunderstorm":
icon = "thunderIcon;";
break;
case "Sunny":
icon = "sunIcon";
break;
}
但是,当我从AsyncTask检索数据并需要在该类中实现图像更改时,我很困惑如何将其实现到代码中,但是那里没有合适的方法来更改ImageView变量。
我了解有一些方法可以在onCreateView方法上实现,但这就是我的代码现在实现的方式
答案 0 :(得分:0)
我建议创建一个Weathers类型的枚举。
public enum Weathers {
RAINING(R.drawable.ic_raining),
SNOWING(R.drawable.ic_snowing);
private int iconResId;
private Weathers(int iconResId) {
this.iconResId = iconResId;
}
public int getIconResId() {
return iconResId;
}
}
这可能会减少条件(上面的开关案例)。要显示到图像视图中,请使用Weathers.valuesOf(String)
(其中String
大写)获取Weather实例的实例。
Weathers snowing = Weathers.valueOf("Snowing".toUpperCase(Locale.ENGLISH));
imageViewIcon.setImageResource(snowing.getIconResId());