android学习笔记——ListView的使用

LIstView控件

  每一个listView控件可以包含很多item(由数据源决定),需要数据适配器将数据源和视图联系起来:1、创建适配器(arrayAdapter——数据源可以是集合和数组,                   simpleAdapter——数据源是泛型的集合);

                                                                                                                                                                                    2、将数据源加载进适配器(通常在创建的时候就加载了,new)

                                                                                                                                                                                    3、视图加载适配器(listView.setAdapter())

 1、创建适配器:

                           a、arrayAdapter适配器:可以包含制定类型的数据源,如ArrayAdapter<String> arr_adapter等,它的构造函数很多,如ArrayAdapter<String>(Context context, int resource,String[] objects)

                                其中1、context是上下文,也就是this,2、resource是列表项(每一个item)的布局文件的ID(可以是android自带的,也可以自己写),3、objects则是数据源                              (数组,数据源需要自己构造或者数据库中提取,此时也就将数据源加载进了数据库)

                          b、simpleAdapter适配器:SimpleAdapter sim_adapter=new SimpleAdapter(Context context,List<? extends Map<String, ?>> data, int resource,String[] from, int[] to)

                               其中1、context也是上下文,2、是数据源:一个由map组成的List集合,如List<Map<String,Object>>,一个map就是一个item,,3、也是列表项的布局文件的ID,4、from记录了Map中的键名(每个map必须包含from中的所有键名),5、绑定map中值所对应的控件ID,与from中的每一项对应。

2、加载数据源到适配器中(创建过程中已经实现,也可以后期修改,添加)

3、视图加载适配器  ListView控件对应的实例化对象.setAdapter(适配器)


到此即可完成ListView的展示。对于每一项被点击后的响应,见“监听器”的使用。



更进一步的合理利用listview

 1、将item封装成Itembean,将list<itembean>作为数据源。

2、自己写适配器,继承baseAdapter.

3、关键在geiView的方法中

   a、利用本身的参数convertView,在其为空的时候才创建一个view对象,并利用布局容器LayoutInflater对象的inflate()方法将布局文件转换为view对象赋给converView,当期不为空时,直接在converView中使用findviewbyid()方法,避免重复创建view对象

  b、因为findviewbyid()也是需要时间,所以可以用一个viewHolder类,将第一次在converView中找到的所有控件保存起来,并利用converView的setTag方法将此iewHolder和converView关联起来。当以后需要操作控件时,直接使用converView的getTag()方法(会返回一个viewHolder类),以此来获得Item中的所有控件。



android学习笔记——ListView的使用_第1张图片


你可能感兴趣的:(android,ListView)