列表类控件有3个要素:控件、Adapter(适配器)和数据源。数据源的提供有多种形式,可以来自数据库、XML文件、数组对象或者集合对象等。Adapter是一个适配器,一端连着控件,另一端连着数据源。不管是什么类型的数据,通过适配器后都能够给控件很好地使用,就相当于是一个转换接口。
不同的数据源,需要使用不同的适配器。数据库的适配器类为CursorAdapter,数组对象的适配器为ArrayAdapter,集合对象的适配器为SimpleAdapter。当系统提供的适配器无法满足要求时,可以自定义适配器。
ArrayAdapter的使用方法,举个例子:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,Provinces);
其中,android.R.layout.simple_dropdown_item_1line为显示样式,其他样式见下图。
Provinces为数组数据源,其定义为:
static final String[] PROVINCES = new String[]{"北京市",“天津市”,“重庆市”,“河北省”,…};
数据源若来自XML ,可以的定义为:
final ArrayAdapter<CharSequence> adapter = ArrayAdapter.CreateFromResource(this,R.array.colors,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
android.R.layout.simple_spinner_item为Spinner样式,android.R.layout.simple_spinner_dropdown_item为下拉列表的样式。
常见的列表类控件有:AutoCompleteTextView、MultiAutoCompleteTextView、spinner(下拉列表)、ListView、GridView、Gallery(相册)。各控件在使用时再详细阐述。