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:可以设计出任意复杂的行布局
原文:http://www.cnblogs.com/until-dead/p/3612526.html