Условные альтернативы ImageView (Android Studio) - PullRequest
0 голосов
/ 26 ноября 2018

Я новичок в студии android и занимаюсь разработкой приложения для погоды.Я хочу поместить условные обозначения для изображений значков в погодные условия.

Например:

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, но этомой код реализован прямо сейчас

1 Ответ

0 голосов
/ 26 ноября 2018

Я предлагаю создать перечисление типа 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;
   }
}

Это может уменьшить условные выражения (случай переключения выше).Чтобы отобразить в виде изображения, получите экземпляр экземпляра Weather, используя Weathers.valuesOf(String), где String в верхнем регистре.

Weathers snowing = Weathers.valueOf("Snowing".toUpperCase(Locale.ENGLISH));
imageViewIcon.setImageResource(snowing.getIconResId());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...