1

我已经创建了一个将文本传递给 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。这个视频很好地组合在一起,解释了你需要知道的一切。

:)

4

1 回答 1

0

您将不得不扩展 BaseAdapter 之类的东西并检查您在 getView() 中的位置,然后相应地设置您想要使用的图像。只有当所有项目都具有完全相同的格式并且非常简单时,SimpleAdapter 才能很好地工作。

这是一个很好的例子。 http://thinkandroid.wordpress.com/2010/01/13/custom-baseadapters/

但我真的建议观看 Romain 和 Adam 的 Google IO 视频 http://www.youtube.com/watch?v=wDBM6wVEO70

于 2012-06-11T18:13:00.260 回答