Adapter
Adapter(适配器)简介
Adapter本身只是一个接口,它派生了ListAdapter、SpinnerAdapter两个子接口。ListAdapter为AbsListView提供列表项、SpinnerAdapter为AbsSpinnerAdapter提供列表项。
几乎所有的Adapter都继承了BaseAdapter,而BaseAdapter同时实现了ListAdapter和SpinnerAdapter两个接口,因此BSEAdapter及其子类可以同时为ABSListView和AbsSpinner提供列表项。
Adapter常用的实现类如下:
ArrayAdapter | 简单、易用的Adapter,常用于将数组或者list集合的多个值包装成多个列表项。 |
SimpleAdapter | 功能强大,用于将list集合的多个对象包装成多个列表项 |
SimpleCursorAdapter | 与SimpleAdapter基本相似,只能用于包装Cursor提供的数据。可以认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。 |
BaseAdapter | 通常用于被扩展,扩展BaseAdapter可以对各项列表项进行最大限度的定制。 |
简单示例
在MainActivity.xml中增加如下代码:
<ListView
android:id="@+id/mList1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="2dp"
android:headerDividersEnabled="false"
/>
然后在java文件中添加如下代码:
ListView lis1t=(ListView)findViewById(R.id.mList1);
String[] arr={"小明","小红","小王"};
ArrayAdapter<String> adapter1=new ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1,arr);
lis1t.setAdapter(adapter1);
在实例化ArrayAdapter的第二个参数: android.R.layout.simple_list_item_1 其实这些是系统给我们提供好的一些ListView模板,有下面几种:
simple_list_item_1 | 单独一行文本框 |
simple_list_item_2 | 两个文本框组成 |
simple_list_item_checked | 每项都是由一个已选中的列表项 |
simple_list_item_multiple_choice | 都带有一个复选框 |
simple_list_item_single_choice | 都带有一个单选钮 |