学习ListView需要学习包括arrayAdapter,simpleAdapter两个适配器,OnScrollListner,OnItemClickListener两种监听器,以及notifyDatechanged:用于刷新后适配器内容的刷新。
适配器的作用是讲复杂的数据呈现在视图上,相当于连接器。
arrayAdapter:数组适配器,绑定格式单一的数据。
simpleAdapter:简单适配器,绑定格式复杂的数据。
使用流程:新建数据适配器--------添加数据源到适配器----------视图加载适配器
例:
private ArrayAdapter<String>arr_adapter;
private SimpleAdapter sim_adapter; private List<Map<String,Object>>datalist;
//1、新建一个数据适配器; //ArrayAdapter(上下文,当前listView加载的每一个列表项所对应的布局文件,数据源); //新建一个简单适配器 //simpleAdapter(上下文(这里指的是当前的activity,所以用this),数据源(一个map所组成的list集合),列表项的布局文件ID,map中的键名,绑定数据视图id) //2、添加数据源到适配器; String[] arr_date={"1","2","3","4","5","6","7"};//创建数据源 datalist=new ArrayList<Map<String, Object>>(); arr_adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arr_date);//数组适配器 sim_adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"pic","text","btn"},new int[]{R.id.pic,R.id.text,R.id.btn});//简单适配器
//3、视图(listView)加载适配器;
//listView.setAdapter(arr_adapter); listView.setAdapter(sim_adapter);
getData方法:
private List<Map<String,Object>> getData(){ for(int i=0;i<20;i++){ Map<String,Object>map=new HashMap<String,Object>(); map.put("pic",R.drawable.ic_launcher); map.put("text",i+11+"元"); map.put("btn","购买"); datalist.add(map); } return datalist; }