在我的列表视图中,我想显示多个图标。列表行1的Icon1,列表行2的图标2,列表行3的Icon1。
答案 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资源中使用数组将您想要的图像资源添加到列表中的方法。希望这会有所帮助。