Adapter 用法总结:
ArrayAdapter,构造方法参数:
/**
* ArrayAdapter<T>(context,resource,List<T> objects) 构造方法:第三个参数还可以是:objects[]
* context: 上下文对象
* resource: 行布局文件的id
* textViewResourceId: 行布局文件可以任意复杂,但是只能指定行布局文件中一个 textView 来设置数据
* List<T> objects: 指定行布局文件使用的数据,List
* T[] objects: 行布局文件使用的数据,T 类型的数组,数组元素将会被当作 String 来使用(调用
* toString)
*/
注意:如果构造方法中没有提供行布局文件使用的数据的参数,那么在 listView.setAdapter 之前必须使用
adapter.add("data0"); 这样的语句来添加数据到adapter。
如果想使用复杂行布局,则应该自定义类继承ArrayAdapter,重写getView 方法,需要实现构造方法,建议选择
带有List<T> 或者 T[] 参数的构造方法,不然 listView 设置adapter之前还要向 adapter add 数据。
可以使用 List + Bundle 来存放数据。如果是json文件,可以直接将 jsonObject 对象作为 List 的
元素类型。不过这两种方法不如定义一个实体类来封装数据的程序结构好。
SimpleAdapter:行布局可以支持四种组件:textview,imageview,checkbox,radiobutton
SimpleAdapter adapter = new SimpleAdapter(
this, // 上下文对象
data, // 数据List<Map>
android.R.layout.simple_list_item_2, // 行布局文件id
from, // map中的键名的String数组
to); // 行布局对象中的view的id,显示相应的map中键名的值
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, layout, cursor, from, to, flags);
// 以上两个simpleadapter只支持四种控件:只支持四种控件:TextView, ImageView, RadioButton、CheckBox
BaseAdapter:可以设计出任意复杂的行布局