我创建了一个包含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);
以上代码工作正常...... 我只是想知道何时创建单独的Adapter类以及它的用途是什么? 换句话说,创建单独的Adapter类有什么好处? 任何帮助将不胜感激... 提前谢谢......
答案 0 :(得分:3)
您是否为TextView
中的每一行设置了ImageView
和ListView
?因为看起来你不是。您为列表中的每一行提供了相同的图像,并且适配器正在设置文本。
如果您希望向Lists
发送多个ArrayAdapter
,则必须编写自己的适配器。就像您为ListView
获取图片和文字一样。您必须编写自己的ArrayAdapter
来设置文字和图片,方法是将它们用相应的文字和图片展开到每个rowView
。
这也适用于每行更复杂的UI,如下所示: http://cloud.addictivetips.com/wp-content/uploads/2012/06/Reddit-Android-Reddit-Is-Fun1.jpg
每一行都有多个TextViews
和Buttons
以及一个ImageView
来自row.xml