Android:ListView中的多个图标

时间:2010-05-10 04:50:47

标签: android listview

在我的列表视图中,我想显示多个图标。列表行1的Icon1,列表行2的图标2,列表行3的Icon1。

2 个答案:

答案 0 :(得分:1)

在ListAdapter中覆盖getView,然后您可以为每一行提供所需的任何布局。

http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

答案 1 :(得分:0)

您想在每行中使用不同的图标吗?那么你可以使用所有图片的资源ID的整数数组,并按行顺序排列。人们执行此操作的典型方法是对列表进行硬编码并指定资源中的R.drawable.iconName。像:

int[] mapPic = {
      R.drawable.icon1,R.drawable.icon2, 
      R.drawable.icon3,R.drawable.icon4};

对我而言,这是一个粗糙的解决方案,硬编码是一个很大的禁忌。更优雅的方法是将数组放入xml文件中,如string.xml或为所有数组创建的数组。在你的string.xml中输入:

<array name="arrayIcon">
    <item>@drawable/icon1</item> 
    <item>@drawable/icon2</item> 
    <item>@drawable/icon3</item> 
    <item>@drawable/icon4</item> 
</array>

然后在您的代码中首次在设置内容之前创建视图时,请添加:

TypedArray mapPic = getResources().obtainTypedArray(R.array.arrayIcon);

您可以通过以下方式访问实际可绘制的对象:

Drawable drawable = typeArray.getDrawable(RowID);

在我的代码中,在我的视图中设置它,我必须抓住ViewWrapper并使用getIcon()来设置它。

ViewWrapper wrapper.getIcon().setImageDrawable(drawable);

这就是通过在xml资源中使用数组将您想要的图像资源添加到列表中的方法。希望这会有所帮助。