一.什么是适配器,适配器有什么用?

适配器是AdapterView视图(如ListView - 列表视图控件、Gallery - 缩略图浏览器控件、GridView - 网格控件、Spinner - 下拉列表控件、AutoCompleteTextView - 自动提示文本框、ExpandableListView - 支持展开/收缩功能的列表控件等)与数据之间的桥梁,用来处理数据并将数据绑定到AdapterView上。
android提供多种适配器,开发时可以针对数据源的不同采用最方便的适配器,也可以自定义适配器完成复杂功能。

补充:

AdapterView对象有两个主要任务
    1. 在布局中显示数据
    2. 处理用户的选择

BaseAdapter一般的适配器基类可用于将数据绑定到listview、Gallery、GridView 、spinner、AutoCompleteTextView上,当然也可以绑定到ExpandableListView上
BaseExpandableListAdapter可扩展的适配器基类可用于将数据绑定到支持展开/收缩功能的列表控件ExpandableListView上,ExpandableListView继承自ListView

二.两种适配器基类的相关类图与继承关系

1>BaseAdapter适配器相关类图:图1和图2

图1    BaseAdapter适配器相关类图

                                                                   图2    BaseAdapter适配器相关类图(续)

2>BaseExpandableListAdapter适配器相关类图:图3

                                                                           图3  BaseExpandableListAdapter适配器相关类图

三.重要类的相关方法构造函数的具体分析

1.ArrayAdapter

补充:

1>数据源写法对比

1.用静态字符数组常量来给ArrayAdapter 赋值。 优点,直接用数组写入,数据量大建议使用。

static final String[] list="...";

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item,list);

2.在程序中给ArrayAdapter 赋值。优点:可以在程序中灵活写入。

ArrayList<String> list = new ArrayList<String>();

list.add("数据1");

list.add("数据N");

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item,list);

3.使用国际化接口 字符数组来 给ArrayAdapter 赋值。优点:提供的组件的选项可以国际化。

目录【res】→【values】→【strings.xml】添加

<string-array name="letter">
  <item>A</item>
  <item>B</item>
  <item>C</item>
  <item>D</item>
</string-array>

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.letter,android.R.layout.my_list_item)//只需要显示

ArrayAdapter<CharSequence> adapter = new ArrayAdapter(this,android.R.layout.my_list_item,Arrays.asList(getResources().getTextArray(R.array.letter)))//允许动态增删

2>什么情况使用ArrayAdapter,什么时候使用BaseAdapter

当数量较多,比如超过100条或频繁动态增减时使用arrayadapter可以方便控制ui,

如果仅仅为了显示则使用baseadapter更节省资源

fromhttps://www.cnblogs.com/bravestarrhu/archive/2012/05/04/2483179.html

android适配器Adapter相关推荐

  1. Android中Adapter适配器的介绍以及用法的总结

    Adapter(适配器的讲解) 适配器就我自己来看,我觉得这是一个非常重要的知识点,Adapter是用来帮助填出数据的中间桥梁,简单点说吧:将各种数据以合适的形式显示在View中给用户看.Adapte ...

  2. android中Adapter适配器的讲解

    android中Adapter适配器的讲解 Adapter(适配器的讲解) 适配器就我自己来看,我觉得这是一个非常重要的知识点,Adapter是用来帮助填出数据的中间桥梁,简单点说吧:将各种数据以合适 ...

  3. Android之Adapter用法总结

    本文转自http://kb.cnblogs.com/a/2328334/,转载请注明原出处. Android之Adapter用法总结 作者:Devin Zhang  来源:博客园  发布时间:2012 ...

  4. Android的Adapter用法总结

    Android之Adapter用法总结 1.Adapter概念   定义为将一个类的接口变换成客户端所期待的一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作.   在androi ...

  5. Android自定义Adapter的ListView的思路及代码

    Android自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下 width="650" height="200" align=&quo ...

  6. Android 解决 adapter.notifyDataSetChanged() 不起作用

    转载请注明出处:http://blog.csdn.net/like_program/article/details/52517119 使用 Listview 的时候,给 adapter 的数据源 Li ...

  7. Android适配器作用

    Android Adapter适配器 Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View. Andr ...

  8. 设计模式学习笔记——适配器(Adapter)模式

    设计模式学习笔记--适配器(Adapter)模式 @(设计模式)[设计模式, 适配器模式, adapter, 适配器] 设计模式学习笔记适配器Adapter模式 基本介绍 适配器案例 类适配器模式 类 ...

  9. 如何定义适配器adapter类_设计模式22-Adapter(适配器)模式-组件接口适配

    在软件开发过程中,有时候系统的数据和行为都正确,但接口不符合,这时候我们就应该考虑使用适配器模式,适配器的作用即将一个类的接口转换成客户希望的另外一个接口.它使得原本由于接口不兼容而不能一起工作的那些 ...

最新文章

  1. 三维等值面提取算法(Dual Contouring)
  2. 不用for 也能实现按照某索引排好某序列
  3. mysql Got error 28 from storage engine
  4. Java—List的用法与实例详解
  5. Grub2主题修改和美化--------LinuxWindows
  6. python系列(四)python元组与字典
  7. CVPR 2021 | 基于随机标签的神经架构搜索
  8. git clone 某次提交前代码_git提交代码常用命令
  9. c++设计成员变量可动态调整的动态类结构
  10. rpm常用命令集合1
  11. 专科python应届生工资多少-作为一个应届毕业生月薪15K?你哪来的自信?
  12. Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块...
  13. DB2数据库用 With语句分隔字符
  14. 继承接口Java多线程(二)、启动一个线程的3种方式
  15. mac 更换默认蓝牙适配器_解决Switch最大遗憾,谷粒ROUTE Air蓝牙适配器:简单好用...
  16. [日推荐]『饿了么外卖服务』饿了么官方小程序,无需下载安装!
  17. 关于MSNSHELL加密MSN聊天记录问题
  18. 企业知识语言(Enterprise Knowledge Language,EKL)
  19. Xmanager Enterprise 5破解版
  20. Ubuntu Desktop 更改默认应用程序 (Videos -> SMPlayer)

热门文章

  1. jackson反序列化时忽略不需要的字段
  2. 【反欺诈】互金欺诈与反欺诈
  3. 【统计学习】参数估计
  4. C++中有string类,string是一个类不是一种类型,c语言中没有
  5. pack()函数中类型对应的符号标记
  6. dashujufenxi:全球企业将遭受20万亿美元损失 年底杠杆率升至90年代水平
  7. 10分钟学会js处理json常用方法
  8. 技术有时间衰减因子.
  9. 一文读懂大数据平台——写给大数据开发初学者的话!
  10. jvm性能调优实战 - 24模拟因动态年龄判断对象进入老年代的场景