2016-08-09 4 views
0

私はWebサービスを使用してapi.forecast.ioから天気リストを取得しています。私は、パラメータ文字列のアイコンを取得するとき、私は、APIから文字列のアイコン値を解析し、viewholderでクラスユーティリティからアイコンリソースを取得していますResourceNotFoundException - 文字列値に基づいてアイコンを取得しようとしています

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

これは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; 
} 

しかしするための方法であります私のデバイス上で実行しようとすると、私はこのようなエラーが発生します。 android.content.res.Resources $ NotFoundException:リソースID#0xffffffff 私は何をすべきですか?

答えて

0

EDIT:

コードあなたのこのようなgetIconfromWeatherCond方法: "アイコンなし" 値の

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; 
     } 
    } 

チェック:

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

今すぐあなたのlogcatはあなたにどのような価値を教えてくれますあなたは持っていませんが、これらのリモートサービスがどのように機能しているかを知っていれば、空白になるだろうと思っています。

+0

私はデータを取得しましたが、アイコン画像はR.drawable。*:3から読み込まれませんでした。これは私のLog.dです。 "08-09 23:11:35.844 20206-20206/com.cahyo.wibowo.jalretrovit D/jajal:アイコンの画像リソースがありません:雨" – cahyowhy

+1

ああああ、あなたのコードを見て、didnそれも見ていない!基本的なJava:==を使用して文字列を比較することはできません。私は私の答えを更新しています。 –

+0

確かに 'HashMap 'は文字列のスイッチケースより優れていますか? –

関連する問題