2012-01-26 28 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

相关问题