首页 > 代码库 > SimleAdapter理解
SimleAdapter理解
先看一个现实生活中Adapter的例子:
该例子中,电源适配Adapter把220伏 50赫兹的市政电输入,转化成5.0伏500mA的直流输出了,这样就可以用于手机充电了。
这里的源是220伏的市政电,表现在手机充电口上的是5.0伏500mA的直流电。
从adapter的角度,它要知道:源是220伏50赫兹的交流电,目标是5.0伏500mA的直流电。
在android中的adapter概念上跟现实中的电源adapter类似。也要包含源和目标,举个例子:
//这里是adapter的源,它的名字是list,其类型的是: ArrayList<HashMap<String,String>>
ArrayList<HashMap<String,String>> list= new ArrayList<HashMap<String,String>>();
//由于list是一个Hash键值对,所以要定义键值对map1, map2, map3
HashMap<String,String> map1 = new HashMap<String,String>();
HashMap<String,String> map2 = new HashMap<String,String>();
HashMap<String,String> map3 = new HashMap<String,String>();
//给键值对变量map1的键和值分别赋值,这里键"user_name"的值是"Zhang San",键"user_id"的值是"192.168.172.15"
map1.put("user_name", "Zhang San");
map1.put("user_ip", "192.168.12.15");
map1.put("user_gender", "male"); //这个数据将不被需要
map2.put("user_name", "Li Si");
map2.put("user_ip", "19.188.172.210");
map3.put("user_name", "Wang Wu");
map3.put("user_ip", "202.12.2.1");
//把赋值后的键值对map1,map2, map3添加到list中,因为list可以担当simpleAdapter的源,这样adapter的源就准备好了
list.add(map1);
list.add(map2);
list.add(map3);
//声明一个simpleAdapter的变量listAdapter,并把源和目标设置好
//this:该activity 类
//list:这个是源(输入数据就来自这里!)
//R.layout.user:这个是目标,事先定义好的那个layout,就像是事先买好的手机
//new String[]{"user_name:,"user_ip"}:取源里面的具体内容,源里面可以有很多数据对,但是这里只要“user_name”和"user_ip"
//new int[]{R.id.user_name, R.id.user_ip}:对应到目标的R.id.user_name和R.id.user_ip
SimpleAdapter listAdapter = new SimpleAdapter(this,list,R.layout.user,
new String[] {"user_name","user_ip"}, new int[]{R.id.user_name, R.id.user_ip} );
//让adapter开始工作!
setListAdapter(listAdapter);