关闭

Android开发学习之常见适配器总结

标签: android应用Android应用开发android开发
2251人阅读 评论(0) 收藏 举报
分类:

        Adapter是指适配器的意思,在Android中,适配器扮演者重要的角色,是UI与Data实现绑定的一个桥梁。Adapter负责创建和显示每个项目的子View和提供对下层数据的访问。支持Adapter绑定的UI控件必须扩展AdapterView抽象类。默认情况下,Android为我们提供了下面几种常见的数据适配器:

   1、ArrayAdapter<T>。这是一个支持绑定任意对象数组到列表的数据适配器。这个适配器默认的View绑定是一个TextView。当这个TextView被使用的时候,它将调用这个数组中每一个对象的toString()方法。如果需要选择性地显示数组中对象的信息,需要重写toString()方法,来满足定制化需求;如果需要显示其它类型的View,需要通过重写getView()方法来实现。

   2、BaseAdapter。这是一个共同的基类的公共实现适配器,可以在同时使用的ListView(通过实现专业化 ListAdapter接口)和微调(通过实现专业化SpinnerAdapter接口)。总之,通过继承BaseAdapter,你可以自由定制自己的数据适配。

   3、SimpleAdapter。这是一个用来绑定Map类型数据的数据适配器。

   4、ListAdapter。ListAdapter是一个之间的桥梁的ListView和数据备份的列表。频繁的数据来自一个游标,但不是必需的。ListView中可以显示,只要是包裹在一个ListAdapter任何数据。

   5、CursorAdapter。CursorAdapter是用来访问Cursor的数据适配器,要求Cursor必须包含一个名为“_id”的字段,否则这个类将无法正常工作。

   6、SimpleCursorAdapter。用于将光标和在一个XML文件中定义TextViews或ImageViews实现绑定。常常用于数据库的数据绑定。

   写这篇文章的原因是是在学习安卓的过程中,碰到了一个很诡异的问题。在郭宏志的《Android应用开发详解》一书中,有一段代码用于在用户提交完数据以后跳转到一个新的页面(Activity)来显示全部的提交数据,这段代码是这样写的:

   super.onCreate(savedInstanceState);
        DBHelper=new DataBaseHelper(this);
        Cursor c=DBHelper.Query();
        String[] From=new String[]{DBHelper.KEYNAME,DBHelper.KEYAGE,DBHelper.KEYSEX};
        int[] To=new int[]{R.id.Layout_Name,R.id.Layout_Age,R.id.Layout_Sex};
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.layout_list, c, From, To);
        lv=getListView();
        lv.setAdapter(adapter);
但是在我实际调试的时候,每次运行到这里都会报错,一直不知道是什么原因,今天偶然发现原来还有个ListAdapter类,一查原来是一个接口,而且ArrayAdapter、SimpleAdapter竟然都是这个接口的实现类。直觉告诉我,应该把前面的SimpleCursorAdapter改成ListAdapter,结果程序顺利运行了。以前用这两个类的时候,都是直接用它的实现类的,都没什么问题啊,为什么这里就不行了呢,而且更杯具的是源代码中编译出来的程序文件我装手机上顺利运行啊,唯一不同的是API版本不同而已啊。这让我很郁闷,索性看了Android的API文档,查到了上面那些内容,除非SimpleCursorAdapter和ListAdapter一点关系都没有,否则我真的不知道是什么原因了。唉,Java中的类怎么这么多啊,一点都不系统啊,记起来好麻烦,不想.NET中的类,你总知道它在什么地方,是什么用途。



0
0
查看评论

Android中常用的适配器

Android中常用的适配器 1.常用的适配器有ArrayAdapter,SimpleAdapter,SimpleCursorAdapter 这三个,他们都是继承于BaseAdapter 。 ArrayAdapter 1.final String[] data = { &qu...
  • abc5382334
  • abc5382334
  • 2013-11-03 01:37
  • 1210

Android 常用适配器总结

一,适配器.          顾名思义,就是把一些数据给弄得适当,适合以便于在View上显示。可以看作是 界面数据绑定的一种理解。它所操纵的数据一般都是一些比较复杂的数据,如数组,链表,数据库,集合等。适配器就像显示器,把复杂的东西按人...
  • ygzk123
  • ygzk123
  • 2012-03-30 23:02
  • 36557

Android中常用适配器及定义自己的适配器

一,适配器.           顾名思义,就是把一些数据给弄得适当,适合以便于在View上显示。可以看作是  界面数据绑定的一种理解。它所操纵的数据一般都是一些比较复杂的数据,如数组,链...
  • jia635
  • jia635
  • 2014-05-01 11:04
  • 467

Android 开发学习小结(二)

一、activity的主要作用 1.用户和应用程序的交互接口类似于网站的展示层 2.一个Activity可以放多个控件,可以理解成一个控件的容器 二、创建一个Activity的要点 1.一个Activity就是一个类,并且这个类要继承Activity 2.需要复写onCreate方法(当一个...
  • cdy102688
  • cdy102688
  • 2015-02-26 21:40
  • 249

Android 开发总结二

1.关于设备尺寸不同、分辨率不同等引起的界面变形问题: 问题:最近测试的时候发现在不同尺寸、不同分辨率的平板上,设计的Android界面显示效果不同,有些还完全变形了。 原因:经过检查程序,发现这些变形的地方主要是由于在java代码中设置了控件或布局的宽度或高度,一般在代码中设置宽度高度采用的是...
  • changlei_shennan
  • changlei_shennan
  • 2015-03-25 14:43
  • 347

android(Adapter)适配器用法总结

  • 2015-06-18 11:53
  • 910KB
  • 下载

Android开发学习之常见适配器总结

Adapter是指适配器的意思,在Android中,适配器扮演者重要的角色,是UI与Data实现绑定的一个桥梁。Adapter负责创建和显示每个项目的子View和提供对下层数据的访问。支持Adapter绑定的UI控件必须扩展AdapterView抽象类。默认情况下,Android为我们提供了下面几种...
  • qinyuanpei
  • qinyuanpei
  • 2013-12-02 18:34
  • 2251

Android开发之listview优化+图片异步加载+避免图片显示闪烁(修改版)

小鹿路过此地。。心热之下写写我li
  • lusiting
  • lusiting
  • 2014-10-19 12:24
  • 1307

Mybatis学习总结二

1.传递pojo对象 Mybatis使用ognl表达式解析对象字段的值,如下例子: select * from user where id=#{id} and username like '%${username}%' MyBatis是通过反射来将java对象映射...
  • u012730299
  • u012730299
  • 2016-05-20 11:27
  • 425

安卓适配器的简单介绍

常用适配器简单介绍
  • leeziyuan
  • leeziyuan
  • 2015-11-08 11:41
  • 985
    个人资料
    • 访问:1498757次
    • 积分:15869
    • 等级:
    • 排名:第812名
    • 原创:212篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1414条
    公众号推广

     欢迎订阅公众号【5厘米的理想】
     一起:探讨技术心得,交流生活感悟
    关于作者
    Payne,一名文艺的程序员
    19岁以前写诗,19岁以后写代码
    欢迎大家同我:
    探讨技术心得,交流生活感悟
    -------------------------------------------
    个人博客:->点此访问
    知乎专栏:->点此访问
    -------------------------------------------
    微信:@PayneQin(请说明来意)
    微博:@飞鸿踏雪(请随意关注)
    知乎:@飞鸿踏雪(请随意关注)
    邮件:qinyuanpei@163.com(请说明来意)
    最新评论