1

メイン アクティビティでイメージビューを設定しようとしても、LogCat でヌル ポインター例外が返され続けます。私のコードはかなり自明です。

JSON URL からデータを取得し、オブジェクトからデータを取得しています。

for (int i=0; i<forecastday_arr.length(); i++) {                        
    HashMap<String, String> map = new HashMap<String, String>();    
    JSONObject e = forecastday_arr.getJSONObject(i);

    JSONObject date_obj = e.getJSONObject("date");

    String curDate = date_obj.getString("weekday");
    String conditions = e.getString("conditions");
    String icon_to_use = e.getString("icon");

    map.put("weekday", curDate);
    map.put("conditions", conditions);
    map.put("icon", icon_to_use);

    if (icon_to_use=="rain") {
        ImageView imgView = (ImageView) findViewById(R.id.imageViewDayOne);
        imgView.setImageBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.rain));
    }      

    mylist.add(map);    
}

私のコードから、「アイコン」の値が(今日の)雨と等しいかどうかを確認し、そうであれば、描画可能なフォルダーに保存されている雨のアイコンを返します。if ステートメントがなくても、同じ null ポインター例外が発生します。私は Android にまったく慣れていないので、デバッグは今のところ最も簡単なことではありません。

画像を正しく設定していると思います。以下に LogCat の写真を添付し​​ました。ここに画像の説明を入力

あいまいで申し訳ありませんが、画像を設定するのは本当に簡単だと思いました。私も何かを逃した場合は申し訳ありません-もしあれば、すぐに修正します.

MainActivity.java のペーストビン: http://pastebin.com/uNfYDGAwおよび activity_main.xml のペーストビン: http://pastebin.com/M1xy1buB

4

2 に答える 2

0

最初にequalsメソッドを使用して文字列を比較します。== の代わりに

if (icon_to_use != null && icon_to_use.equals("rain")) {

   ....

}

NullPointerException の原因

レイアウトに setContentView を呼び出さなかったか、正しいレイアウトを設定しなかったことが原因である可能性があります。imageViewDayOneそのレイアウトで定義されていないことを意味します。

于 2013-03-15T20:08:29.197 に答える