我已经创建了一个将文本传递给SimpleAdapter的动态列表视图,但是我希望传递信息以使图像显示在drawable文件夹中。以下是每行的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文本视图中显示诸如'football'之类的文本。但是我知道这项运动是什么,我希望能够在sport_icon imageview中显示一个图标。运动图标位置的一个示例是@ drawable / icon_football。
非常感谢。
这里的答案是使用下面的Frank建议的ListView创建一个BaseAdapter。如果其他人想要做同样的事情但不知道从哪里开始我强烈建议观看http://www.youtube.com/watch?v=pVs4qKmenQM。这段视频很好地组合在一起,并解释了您需要了解的所有内容。
:)
答案 0 :(得分:0)
你将不得不扩展像BaseAdapter这样的东西并检查你在getView()中的位置,然后相应地设置你想要使用的图像。 如果所有项目的格式完全相同,SimpleAdapter只能很好用,而且非常简单。
这是一个很好的例子。 http://thinkandroid.wordpress.com/2010/01/13/custom-baseadapters/
但我真的建议观看Romain和Adam的Google IO视频 http://www.youtube.com/watch?v=wDBM6wVEO70