Android将图像添加到动态列表视图中

时间:2012-06-11 18:08:26

标签: android listview dynamic imageview drawable

我已经创建了一个将文本传递给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。这段视频很好地组合在一起,并解释了您需要了解的所有内容。

:)

1 个答案:

答案 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