Android Adapter学习心得

来源:互联网 发布:v盾网络验证好破解吗 编辑:程序博客网 时间:2024/06/16 13:24

有三种常用的适配器

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的值应该填充到布局文件中的哪一块。。


0 0