2010-08-08 25 views
2

請注意,我的活動不擴展ListActivity;只是活動。Android中的多個圖標ListView

我有一個自定義佈局列表視圖如下:

(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> 

我再爲ListView適配器使用設置爲一個ArrayAdapter一個ArrayList,這裏叫'機器'。

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字段做類似的事情?

回答

3

對於ArrayAdapter,您需要覆蓋getView()並自行完成更多工作。您可以自行膨脹該行(g etLayoutInflater().inflate())或鏈接到超類以獲取您的行。然後,找到該行中的ImageView,並根據提供給getView()的位置參數設置其圖像。返回結果行。

Here's a free excerpt來自我的一本書,涵蓋了大部分內容。

+1

太棒了。這工作完美。 – jhirsch 2010-08-09 00:01:53

0

或者您可以使用基礎適配器創建自定義列表視圖