我已经创建了一个将文本传递给 SimpleAdapter 的动态列表视图,但是我想传递信息以使图像从可绘制文件夹中显示出来。这是每一行的 XML 布局:
<ImageView
android:id="@+id/sport_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:padding="2dp"
android:textSize="20dp" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right" >
<TextView
android:id="@+id/item_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:textSize="13dp" />
</LinearLayout>
</LinearLayout>
以及创建列表的代码位:
//fill in the list items from the XML document
for (int i = 0; i < nodes.getLength(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element)nodes.item(i);
map.put("id", XMLfunctions.getValue(e, "fixture_id"));
map.put("sport", XMLfunctions.getValue(e, "sport"));
map.put("teams", XMLfunctions.getValue(e, "team_2") + " v " + XMLfunctions.getValue(e, "team_2"));
mylist.add(map);
}
//Make a new listadapter
ListAdapter adapter = new SimpleAdapter(this, mylist, R.layout.fixture, new String[] { "sport", "teams" }, new int[] { R.id.item_title, R.id.item_subtitle });
setListAdapter(adapter);
现在,当我传递字符串 sport 时,它只会在 item_title 文本视图中显示诸如“足球”之类的文本。但是我知道这项运动是什么,我希望能够在 sport_icon 图像视图中显示一个图标。运动图标位置的一个示例是@drawable/icon_football。
非常感谢。
这里的答案是使用下面 Frank 建议的 ListView 创建一个 BaseAdapter。如果其他人想做同样的事情但不知道从哪里开始,我强烈建议您观看http://www.youtube.com/watch?v=pVs4qKmenQM。这个视频很好地组合在一起,解释了你需要知道的一切。
:)