问题
I have been looking around for examples on how to do this. Cam across an approach that used SimpleAdapter and HashMaps here on StackOverflow. This is my code. It's not working. All I can see is an empty row of a list.
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"
/>
Please tell me what I'm doing wrong.
回答1:
The field in your HashMap
needs to match. Try this:
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 });
来源:https://stackoverflow.com/questions/8411485/how-to-display-images-in-listview-android