2012-01-26 61 views
3

我有一個lisview,我想添加圖像。我在早期發現的例子顯示使用simple_list_item_1,但它似乎不允許我想要的。簡單的方法添加圖像到Android ListView

如果可能的話,我也想能夠改變項目indepentantly對方的顏色。以至一個文本是紅色,藍色兩種,等

的main.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="fill_parent" 
    android:orientation="vertical"> 

    <TextView android:id="@+id/textHeader" 
     android:textSize="24px" 
     android:textColor="#006699" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     /> 
    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     /> 
    <TextView android:id="@android:id/empty" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Empty set" 
     /> 
<TextView 
    android:id="@+id/status_text" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1" 
    /> 
</LinearLayout> 

main.java

public class sGuide extends ListActivity { 
    private String[] mBooks = new String[]{ "One", "Two", "Three" }; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     ArrayAdapter<String> booksAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mBooks); 

     this.setListAdapter(booksAdapter); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     //mChecker.onDestroy(); 
    } 
} 

編輯:這是我的新行佈局。我想這樣做是爲了在行的任何地方點擊選擇它,而不必點擊圖像或標籤。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="45dp" 
     android:layout_height="45dp" 
     android:layout_marginLeft="4dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="4dp" 
     android:src="@drawable/icon" 
     > 
    </ImageView> 

    <TextView 
     android:id="@+id/label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="11dp" 
     android:layout_marginBottom="9dp" 
     android:text="@+id/label" 
     android:textSize="22dp" > 
    </TextView> 

</LinearLayout> 

編輯2:更改了線性佈局以填充父項而不是換行文本。現在它可以工作。

+1

創建自定義'ArrayAdapter'通過擴展'ArrayAdapter'並覆蓋其'getView (int position,View convertView,ViewGroup parent)'方法。 –

回答

4

對於這種行爲,你需要實現自己的適配器。在使用ArrayAdapter時,您應該擴展ArrayAdapter並覆蓋getView方法,以您希望的方式更改ListItem的視圖。有關此主題的更多信息,請參閱此ListView Tutorial

+0

爲該行添加了xml。當我點擊文字或標籤時,它似乎只能工作。如果在行的任何地方點擊,是否可以使其工作? – AndyD273

相關問題