如何在ListView android中显示图像

时间:2011-12-07 06:52:47

标签: android listview imageview hashmap simpleadapter

我一直在寻找有关如何执行此操作的示例。在StackOverflow上使用SimpleAdapter和HashMaps的方法。 这是我的代码。它不起作用。我只能看到列表中的空行。

listItems = new ArrayList<HashMap<String,Object>>();

HashMap<String,Object> listData1 = new HashMap<String,Object>();
HashMap<String,Object> listData2 = new HashMap<String,Object>();

image_1 = getResources().getDrawable(R.drawable.camera_icon_focus_dim);
image_2 = getResources().getDrawable(R.drawable.camera_icon_scene_mode);

listData1.put("icon focus", image_1);
listData2.put("icon_scene", image_2);

listItems.add(listData1);
listItems.add(listData2);

SimpleAdapter listItemAdapter = new SimpleAdapter(this, listItems,
  R.layout.image_list_item, new String[]{"icon_focus"}, 
  new int[]{R.id.list_view_item1});

optionsList.setAdapter(listItemAdapter);

image_list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<ImageView   xmlns:android="http://schemas.android.com/apk/res/android"
        android:paddingTop="12dip"       
        android:layout_width="wrap_content"       
        android:layout_height="wrap_content"        
        android:id="@+id/listitem_img"
    />

list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_view_item1"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="1.0"
/>

请告诉我我做错了什么。

1 个答案:

答案 0 :(得分:4)

HashMap中的字段需要匹配。试试这个:

listItems = new ArrayList<HashMap<String,Integer>>();
String fieldName = "icon_id";

HashMap<String, Integer> listData1 = new HashMap<String, Integer>();
HashMap<String, Integer> listData2 = new HashMap<String, Integer>();

listData1.put(fieldName, R.drawable.camera_icon_focus_dim);
listData2.put(fieldName, R.drawable.camera_icon_scene_mode);

listItems.add(listData1);
listItems.add(listData2);

SimpleAdapter listItemAdapter = new SimpleAdapter(
    this,
    listItems,
    R.layout.image_list_item,
    new String[] { fieldName },
    new int[] { R.id.listitem_img });