第一种:arrayAdapter
听名字就知道,这是一种以一种类似数组的方式来存储数据,然后再传递的适配器,也是比较简单的适配器。
用法:1)建一个ListView控件,并加上id,方法与textView一样;另外再单独建一个textView单没有布局;
2)实例化ListView得到mLextView,并监听;
3) 获得数据源,如String[] data={"java","android","j2se","html","wphone","net","javaScript"};就是列出你 想展示的东西;
4) 实例化适配器 arrayAdapter adapter=new arrayAdapter (this,R.DANDUtxt_layout,data);
5) 链接适配器与数据源 mLextView.setAdapter(adpter);
第二种:simpleAdapter
据说这是最难最常用的适配器之一;用法与arrayAdapter大同小异;
用法:1)建一个ListView控件,并加上id,方法与textView一样;另外再单独建一个布局,内容根据实际情况来写;
2)实例化ListView得到mLextView,并监听;
3) 获得数据源,这里会用到HASHMap和ArrayList来存储数据;
4) 实例化适配器 arrayAdapter adapter=new arrayAdapter (this,R.DANDUtxt_layout,data);
5) 链接适配器与数据源 mLextView.setAdapter(adpter);
第三种:baseAdapter 自定义适配器,也是我认为最难的一种,这里我只有一点的经验可以分享;
用法:1)建一个类继承自baseAdapter;里面要实现4种方法;如图
这里前三种方法都比较简单,我上面已经写好了,就第四种才是真正自定义的部分;
在这里一般思路是先定义一个layoutinflater将你写的布局解析成view控件,再从中分别取值;
将数据源的值赋给取到的view控件;最后就可以使用这个自己定义的适配器了
下面来举个例子,
public View getView(int position, View convertView, ViewGroup parent) {
View v = layoutInflater.inflate(R.layout.item_adapter_simple_view,null);//将布局解析生成View对象
//从View对象中获取控件实例
ImageView iconImg = (ImageView) v.findViewById(R.id.adapter_simple_imageview);
TextView titleTxt = (TextView) v.findViewById(R.id.adapter_simple_title_txt);
TextView contentTxt = (TextView) v.findViewById(R.id.adapter_simple_content_txt);
HashMap
int icon = (int) item.get("icon");
String title = (String) item.get("title");
String content = (String) item.get("content");
// iconImg.setBackgroundResource(icon); // 通过代码设置ImageView背景 background
iconImg.setImageResource(icon); //通过代码设置 ImageView控件内容 src
titleTxt.setText(title);
contentTxt.setText(content);
return v;
}