ListView的各种适配器

发布时间:2020-07-18 06:22:10 作者:xiaoyusong
来源:网络 阅读:863

  学习至今,发现ListView有好几种适配器,用法不同,各有优缺点,在此做个小总结:

1、BaseAdapter(基本适配器)

  其缺点是用法比较复杂一些,但是因为不受其他限制,所以被广泛应用。

  用法:

   a、创建一个类继承BaseAdapter,重写它的四个方法。四个方法中,有两个方法很少用到,必    须用到的是getView()和getCount()方法,前者返回listview的布局对象,后者则返回listview的行数。

   b、new出这个类的对象,并对listview进行设置适配器。

   c、需要注意的是,当对listview中的数据进行更改时,一定不能忘记调用   notifyDataSetChanged()方法来更新设配器。

   d、对代码进行优化,常用的优化有两个,一是行布局复用,二是对行布局中的空间进行封装,如下图:ListView的各种适配器


2、CursorAdapter(游标适配器)

  当ListView中所需数据是存于数据库时,可选用此适配器,用法相对比BaseAdapter简单。

  用法:

   a、创建一个类继承CursorAdapter,创建一个有参构造方法和重写两个方法newView()和 bindView(),前者创建并返回一个行布局对象,后者对行布局进行更新,如下图:

ListView的各种适配器

   b、new出该类的对象,需要两个参数——上下文和游标对象。游标由数据库对象调用query()得到。

   c、对listview设置适配器。

   d、需要注意的是,当listview中数据有更新时,在调用notifyDataSetChanged()方法来通知适配器之前,要先调用changeCursor()改变游标对象。

3、SimpleCursorAdapter(简单游标适配器)

4、SimpleAdapter(简单适配器)

  简单适配器所对应的listview里面只能放以下这些控件:textview、p_w_picpathview、 继承了CompoundButton的控件。

  例子:

    ArrayList<HashMap<String, String>> data = new ArrayList<HashMap<String,String>>();

    for (int i = 0; i < 50; i++) {

       HashMap<String, String> hasDate = new HashMap<String, String>();

       hasDate.put("name", "小丽"+i);

       hasDate.put("age", "23");

       data.add(hasDate);

    }

    String[] from = new String[]{"name","age"};

    int[] to = new int[]{R.id.textView1,R.id.textView2};

    SimpleAdapter adapter = new SimpleAdapter(this, data , R.layout.item_list, from,

                                                to);

    listView.setAdapter(adapter);  

 

5、ArrayAdapter

  例; listView.setAdapter(new ArrayAdapter<String>

                 (this,android.R.layout.simple_list_item_1, strList));

       第二个参数是作为listview的行布局,第三个参数strList是一个字符串数组,作为listview的数据来源。


6、比较特殊的一种是当activity继承的不是Activity,而是ListActivity时,这个activity的默认布局就是listview,这时只要直接调用以下方法即可:

    setListAdapter(new ArrayAdapter<String>(this,

                      android.R.layout.simple_list_item_1, strList));



推荐阅读:
  1. ListView+Adapter适配器的使用与Listview常见的UI显示问题
  2. Android的ListView——适配器模式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

适配器 listview lis

上一篇:Awstats 日志分析

下一篇:Python调用:'get_column_letter‘错误

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》