Android ListView中的多个图标

时间:2010-08-08 22:23:16

标签: java android listview

请注意,我的活动不是扩展ListActivity;只是活动。

我有一个带有自定义布局的列表视图,如下所示:

(RES /布局/ list_item.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
>
<ImageView
 android:id="@+id/icon"
 android:layout_width="30dip"
 android:paddingTop="15dip"
 android:layout_height="wrap_content"
 android:src="@drawable/icon_default"
/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:textColor="#ffffff"
/>
    </LinearLayout>

然后我使用ArrayList将ListView的适配器设置为ArrayAdapter,这里称为'machines'。

ListView rooms = (ListView)findViewById(R.id.machines);
ArrayAdapter<String> aa = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, android.R.id.text1, machines);
rooms.setAdapter(aa);

我将如何为ImageView字段做类似的事情?

2 个答案:

答案 0 :(得分:3)

使用ArrayAdapter,您需要覆盖getView()并自行完成更多工作。你可以自己给行充气(g etLayoutInflater().inflate())或链到超类来获取你的行。然后,找到行中的ImageView并根据提供给getView()的位置参数设置其图像。返回结果行。

Here's a free excerpt来自我的一本书,其中涵盖了大部分内容。

答案 1 :(得分:0)

或者您可以使用基本适配器

创建自定义列表视图