2

我创建了一个包含 ImageView 和 TextView 的简单列表,而不使用自定义适配器类。我浏览了互联网,发现大多数自定义列表都是使用单独的适配器类创建的......这是我的列表行布局......

list_row.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:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher"
        android:layout_marginRight="15dp"/>

    <TextView android:id="@+id/list_item_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:textSize="15sp"/>

</LinearLayout>

MainActivity.java

    //Taking reference of a ListView
    ListView listView = (ListView) findViewById(R.id.list_view);

    //Setting up ArrayList to feed ArrayAdapter
    ArrayList<String> fruits= new ArrayList<String>();
    fruits.add("Apple");
    fruits.add("Mango");
    fruits.add("Strawberries");
    fruits.add("Grapes");

    //Setting up ArrayAdapter   
    ArrayAdapter<String> adapter = new ArrayAdapter<String>
            (this, R.layout.list_row, R.id.list_item_id, fruits);
    listView.setAdapter(adapter);

上面的代码工作正常......我只想知道什么时候创建单独的适配器类,它有什么用?换句话说,创建一个单独的适配器类有什么好处?任何帮助将不胜感激...在此先感谢...

4

1 回答 1

3

你甚至为你的每一行设置TextView和吗?因为看起来你不是。您为列表中的每一行提供相同的图像,并且文本由适配器设置。ImageViewListView

如果您想将多个发送Lists到您的ArrayAdapter,则必须编写自己的适配器。就像你为你的ListView. 您必须编写自己的ArrayAdapter来设置文本图像,通过将它们膨胀到每个rowView具有相应的文本和图像。

这也适用于每一行的更复杂的 UI,比如这个:( 来源:addictivetips.com

每行有多个TextViewsButtons和一个ImageView从一个膨胀的row.xml

于 2012-09-06T16:58:23.187 回答