首页 > 代码库 > 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);