有三种常用的适配器
ArrayAdapter SimpleAdapter BaseAdapter
其中用ArrayAdapter 和SimpleAdapter 就可以完成大多数的ListView
其中ArrayAdapter貌似只能匹配字符串
super.onCreate(savedInstanceState);
setContentView(R.layout.arraylistview);
ListView view1 = (ListView) findViewById(R.id.listView1);
String[] arr = new String[]{
"唐僧","孙悟空","猪八戒","沙僧","白龙马"
};
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr);
view1.setAdapter(adapter1);
int[] arr1 = new int[]{
R.drawable.wp1,R.drawable.wp2,R.drawable.wp3
};
ArrayAdapter<String>的构造函数,
第一个参数是指定的context,一般都是this
第二个参数是listview中每一项(每一行)用的布局,在这里我们调用了android系统提供的一个布局
第三个参数是一个ArrayList类型的对象,他的size代表了有多少列
SimpeAdapter 它的功能比较强大,她代表的每一项都不仅仅只有一个数据,而是可以存在多个数据
super.onCreate(savedInstanceState);
this.setContentView(R.layout.simpleadapter);
ListView view1 = (ListView) findViewById(R.id.simple_listView1);
List<Map<String,Object> >listItems = new ArrayList<Map<String,Object> >();
for(int i=0;i<names.length;i++)
{
Map<String,Object>listItem = new HashMap<String,Object>();
listItem.put("header", imagesId[i]);
listItem.put("personName", names[i]);
listItem.put("desc", descs[i]);
listItems.add(listItem);
}
SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,R.layout.simpleadapteritem,new String[]{"header","personName","desc"},new int[]{R.id.item_imageView1,R.id.item_textView1,R.id.item_textView2});
view1.setAdapter(simpleAdapter);
在以上的栗子中,我们每一个数据项有三个数据,simpleAdapter一般利用List<Map<String,xx> >来存放数据在这里我们xx在同一个数据项中可以是String也可以是int
关于SimpleAdapter的构造函数
第一个参数,context this
第二个参数 一般是每一个数据项的布局文件
第三个参数 是Map里面用到的index 一般都是String
第四个参数 是Map里面index对应的Value的值应该填充到布局文件中的哪一块。。