我想使用哈希映射将图像设置为列表视图,目前正在设置除图像之外的所有数据。如何使用哈希映射设置图像?图像存储在drawable文件夹中。以下是我的代码。
// create a List of Map<String, ?> objects
ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
for (Attraction attraction : attractions) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(attraction_name, attraction.getName());
map.put("img", String.valueOf(R.drawable.king));
data.add(map);
}
// create the resource, from, and to variables
int resource = R.layout.layout_att;
String[] from = {attraction_name, "img"};
int[] to = {R.id.name, R.id.img};
// create and set the adapter
SimpleAdapter adapter =
new SimpleAdapter(this, data, resource, from, to);
attractionListListView.setAdapter(adapter);
attractionListListView.setOnItemClickListener(this);
}
答案 0 :(得分:0)
您可以使用:http://developer.android.com/reference/android/widget/ImageView.html#setImageResource(int)
在适配器中,执行以下操作:
imageView.setImageResource((int) hashMap.get("img"));
虽然,我真的建议你有一个类而不是哈希映射来做这样的事情。通过这种方式,您可以获得类的List(它甚至可以是帮助您组织的内部类),而不是哈希映射。有了这个,你可以避免将hashmap内容转换为int。
但除此之外,如果你真的想使用hashmap,你可以使用我上面写的代码。
此致
答案 1 :(得分:0)
我不认为您需要在Map中保留二进制数据(流),如果您在需要时阅读它可能会很好。您无法将二进制图像处理为String ..
请参阅此主题以获取解决方案:How to display a list of images in a ListView in Android?