HashMap中的对象 - 传递给ListView适配器

时间:2012-01-25 21:36:13

标签: android listview hashmap listadapter

是否可以将字符串和drawables作为对象传递到同一个HashMap中,然后使用此hashmap通过SimpleAdapter填充ListView?

我想要这个,因为我首先获得的JSON数据也包含缩略图的URL。然后我下载这个缩略图。相关代码(我认为):

for (...) {
    ...
    InputStream is = (InputStream)content;

    Drawable image = Drawable.createFromStream(is, "src");

    // Hashmap          
    HashMap<String, Object> map = new HashMap<String, Object>();

    map.put("title", new String(jsonObject.getString("Title")));
    map.put("thumb", image);

    mylist.add(map);
}

ListAdapter adapter = new SimpleAdapter(getActivity(), mylist, R.layout.listitem,
        new String[] { "title", "thumb"},
        new int[] { R.id.title, R.id.thumb });

setListAdapter(adapter);

R.id.title = TextView,和R.id.thumb = ImageView

这适用于标题字符串,但不适用于drawable。这种做法真的很愚蠢吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您应该为列表中的行表示创建XML布局文件,并为您的行充气自定义适配器

答案 1 :(得分:0)

据我所知the SimpleAdapter documentationImageView只支持绑定资源标识符或StringString,我的意思是)must represent an image resource or an image URI。如果直接传递Drawable对象,它将无效。