0

i am using web service to get weather list from api.forecast.io. when i get the parameter string icon, i am parsing the string icon value from api and get the icon resource from class utility with viewholder

vh.icon.setImageResource(Utility.getIconfromWeatherCond(item.getIcon()));

this is method for getIconfromWeatherCond

public static int getIconfromWeatherCond (String icon) {
    if (icon=="clear-day") {
        return R.drawable.ic_clear;
    }
    else if (icon=="clear-night") {
        return R.drawable.ic_clear;
    }
    else if (icon=="rain") {
        return R.drawable.ic_rain;
    }
    else if (icon=="snow") {
        return R.drawable.ic_snow;

    }
    else if (icon=="sleet") {
        //hujan campur es
        return R.drawable.ic_snow;
    }
    else if (icon=="wind") {
        return R.drawable.ic_cloudy;
    }
    else if (icon=="fog") {
        return R.drawable.ic_fog;
    }
    else if (icon=="cloudy") {
        return R.drawable.ic_cloudy;
    }
    else if (icon=="partly-cloudy-day") {
        return R.drawable.ic_light_rain;
    }
    else if (icon=="partly-cloudy-night") {
        return R.drawable.ic_light_rain;
    }
    else if (icon=="hail") {
        return R.drawable.ic_snow;
    }
    else if (icon=="thunderstorm") {
        return R.drawable.ic_storm;
    }
    else if (icon=="tornado") {
        return R.drawable.ic_storm;
    }
    return -1;
}

but when iam trying to runing on my device i get error like this. android.content.res.Resources$NotFoundException: Resource ID #0xffffffff what should i do??

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
cahyowhy
  • 553
  • 2
  • 9
  • 26

1 Answers1

0

EDIT:

Code your getIconfromWeatherCond method like this:

    public static int getIconfromWeatherCond (String icon) {

        switch (icon) {
        case "clear-day":
            return R.drawable.ic_clear;
        case "clear-night":
            return R.drawable.ic_clear;
        case "rain":
            return R.drawable.ic_rain;
        case "snow":
            return R.drawable.ic_snow;
        case "sleet":
            //hujan campur es
            return R.drawable.ic_snow;
        case "wind":
            return R.drawable.ic_cloudy;
        case "fog":
            return R.drawable.ic_fog;
        case "cloudy":
            return R.drawable.ic_cloudy;
        case "partly-cloudy-day":
            return R.drawable.ic_light_rain;
        case "partly-cloudy-night":
            return R.drawable.ic_light_rain;
        case "hail":
            return R.drawable.ic_snow;
        case "thunderstorm":
            return R.drawable.ic_storm;
        case "tornado":
            return R.drawable.ic_storm;
        default:
            return -1;
        }
    }

Check for "no icon" value:

  int resId = Utility.getIconfromWeatherCond(item.getIcon());
  if (resId != -1) {
      vh.icon.setImageResource(resId);
  } else {
      Log.d(TAG, "No image resource for icon: " + item.getIcon());
  }

Now your logcat will tell you what value you don't have, but knowing how these remote services work, I bet it's just going to be blank.

kris larson
  • 30,387
  • 5
  • 62
  • 74