3

リストビューに画像を追加したいのですが、どうすればよいですか? 名前とタイプは正しく表示されています。現在、ここで立ち往生しています。

.//other codes
.
.
try{
        JSONArray arr = new JSONArray(res);
        for(int i=0;i<arr.length();i++){                        
            HashMap<String, String> map = new HashMap<String, String>();
            JSONObject e = arr.getJSONObject(i);

            map.put("placeID", ""+ e.getString("placeID"));
            map.put("placeName",""+ e.getString("placeName"));
            map.put("placeType", ""+ e.getString("placeType"));
            map.put("image", R.drawable.ball_green);

            mylist.add(map);            
        }       
    }catch(JSONException e)        {
         Log.e("log_tag", "Error parsing data "+e.toString());
    }

    ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.places, 
                    new String[] { "placeName", "placeType" }, 
                    new int[] { R.id.placeName, R.id.placeType });
.
.
.//other codes

次のように適切に画像が必要です。

リストビュー

4

2 に答える 2

4

このR.javaクラスはビルド時に自動生成され、リソースIDである整数の「リスト」を維持します。言い換えるR.<anything>と、はでIntegerあり、リソース(文字列、ドローアブルなど)を直接表すものではありません。

HashMapキーと値の両方の型を期待しているため、リソースIDをStringに変換する必要があります。例...ball_greenString

map.put("image", String.valueOf(R.drawable.ball_green));

再度使用するには、などのウィジェットの画像を設定するために使用Stringするときに、それをに戻す必要があります。IntegerImageView

于 2012-02-18T08:27:33.113 に答える
1

画像をハッシュテーブルに追加することは良い考えではないと思います。カスタム アダプターは簡単に追加できます。SimpleAdapter は使用しないでください。

于 2012-02-18T08:31:33.803 に答える