我想在listview中添加图片,我该怎么办?名称和类型正确显示。目前卡在这里。
.//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
我想要的图像恰如:
答案 0 :(得分:3)
R.java
类在构建时自动生成,并维护一个作为资源ID的整数'列表'。换句话说,R.<anything>
是Integer
并且不直接表示资源(字符串,可绘制等)。
由于您的HashMap
期望密钥和值的String
类型,您需要将ball_green
资源ID转换为String
。实施例...
map.put("image", String.valueOf(R.drawable.ball_green));
为了再次使用它,您必须将String
转换为Integer
,然后再使用它来设置小部件的图像,例如ImageView
等。 / p>
答案 1 :(得分:1)
我不认为将图像添加到哈希表中是一个好主意。您可以轻松添加自定义适配器,不要使用SimpleAdapter。