1.android系统中显示列表的控件,一般包含多个item
2.数据适配器,把复杂的数据(数组、链表、数据库、集合等)填充在指定视图界面上
ArrayAdapter(数组适配器):用于绑定格式单一的数据
数据源:可以是集合或者数组
simpleAdater(简单适配器):用于绑定格式复杂的数据
数据源:只能是特定泛型的集合
实现过程:新建适配器->添加数据源到适配器->视图加载适配器
example1:
-------------------------------------------------------------------------------------------------------------------------
- 新建.xml文件 并且添加ListView控件
- 在mainActivity中添加
- 实例化Testview控件并且声明适配器,
声明方法 private ArrayAdapter<String>adapter; //字符数组适配器
4. 适配器加载数据源
// ArrayAdapter(上下文,当前ListView加载的每一个列表所对应的布局文件,数据源)
arr_adapter = new ArrayAdapter<String>(this,android.R.layou.simple_list_item_1,arr_data);
5. (ListView)加载适配器
listview.setAdapter(arr_adapter);
------------------------------------------------------------------------------------------------------------------------
example2:
---------------------------------------------------------------------------------------------------------------------
/*
*simpleAdapter()的5个数
*context :上下文
*data :
*数据源需要一个(List<? extends Map<String , ?>>data)一个Map所组成的List集合
*每一个Map都对应ListView列表中的一行
*每一个Map由(key+alue)组成,必须包含所有在from中所指定的key
*form: Map 中的key
*to: 绑定数据视图中单id,与from对应
*/
- 新建一个item布局
将orientation属性设置成 horizontal;
在左边添加一个ImageView;
在右边添加一个TextView;
2. 新建简单适配器,新建数据源,且进行初始化赋值
simpleAdapter(context,data,resource,from,to);
//部分代码
private List<Map<String,Object>>dataList;
dataList= new ArrayList<Map<String,Object>>();
simp_adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"q","w"},
new int []{R.id.ig,R.id.tv});
private List<Map<String,Object>> getData()
{
for(int i=20;i<20;i++)
{
Map<String,Object>map= new HashMap<Stirng,Object>();
map.put("pic",R.drawable.ic_launcher);
map.puy("text","sillyB"+i);
dataList.add(map);
}
return dataList;
}
3 (ListView)加载适配器
listview.setAdapter(simp_adapter);
----------------------------------------------------------------------------------------------------