ListView 和 数据适配器

来源:互联网 发布:淘宝可以寄海外 编辑:程序博客网 时间:2024/05/02 04:40
1.android系统中显示列表的控件,一般包含多个item

2.数据适配器,把复杂的数据(数组、链表、数据库、集合等)填充在指定视图界面上
     ArrayAdapter(数组适配器):用于绑定格式单一的数据
     数据源:可以是集合或者数组

     simpleAdater(简单适配器):用于绑定格式复杂的数据
     数据源:只能是特定泛型的集合

实现过程:新建适配器->添加数据源到适配器->视图加载适配器
example1:
-------------------------------------------------------------------------------------------------------------------------
  1. 新建.xml文件 并且添加ListView控件
  2. 在mainActivity中添加
  3. 实例化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对应
*/
  1. 新建一个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);
----------------------------------------------------------------------------------------------------









                         
0 0