当前课程知识点:Android应用开发基础 > 第三章 Android组件 > 3.4 Android适配器 > 3.4.1 系统适配器
本节我们主要介绍Android的适配器
以及对应的组件
主要包括下面组件
1 Spinner下拉组件
主要介绍Spinner下拉组件
使用ArrayAdapter显示数据的实例
2 ListView 列表组件
主要介绍ListView
与SimpleAdapter显示数据的实例
下面我们介绍Adapter适配器
Android有许多列表组件需要显示多条数据
比如Spinner
ListView
GridView
ViewPager等
Adapter作为数据与列表组件的桥梁
主要作用有以下两点
1 对要进行显示的数据进行处理
2通过与视图对象绑定
将数据显示到视图对象
Adapter 数据源和列表组件的关系如下图
1 Adapter主要负责将不同的数据源
显示到列表组件中
比如数据库或者网络获取的Cursor数据
还有以ArrayList为代表的列表数据
2 列表类组件通过不同的Adapter适配器
将不同类型的数据进行显示
Android中Adatper类的继承关系如下图所示
1 Adapter类是所有适配器的父类
2 ListAdapter类和SpinnerAdapter
是Adapter的子类
用于显示简单的列表数据
3 BaseAdapter是一种复杂适配器
用户可以在BaseAdapter基础上
开发自定义适配器处理各种复杂数据
4 CursorAdapter
SimpleAdapter
是BaseAdapter适配器的子类
用户可以直接用作ListView组件的数据显示
下面我们介绍Spinner下拉单选框组件
下面是Spinner组件的基本属性和方法
1 android.prompt
setPrompt 设置标题文字
2 setAdapter
设置下拉列表的适配器
3 setSelection
设置组件当前选择项
4 setOnItemSelectedListener
设置组件选择子项监听器
Spinner的例子如图所示
Spinner一般使用ArrayAdapter作为适配器
主要用于显示列表类的数据
数据源为字符数组
Spinner组件通过ArrayAdapter
将字符数组显示到组件
Spinner的代码实现如下图所示
1 在主视图Activity中
实现下拉框子项选中事件监听器
一般使用了父类接口
AdapterView.OnItemSelectedListener
2 定义Spinner变量并初始化
将下拉框子项选中事件
注册到Activity事件监听器
3 数据进行初始化
(1)定义字符数组String[] strWeek
(2)定义并初始化ArrayAdapter对象
第一个参数代表当前的Activity
第二个参数代表
使用系统默认的布局显示Spinner的子项
(3)第三个参数使用字符数组strWeek
(4) Spinner组件对象的初始化
使用setPrompt设置标题
将Spinner组件对象与适配器对象绑定
使用setSelection设置当前的子项为第一行
4 在Activitity主视图中
重写父类AdapterView的onItemSelected方法
实现下拉框子项选中事件处理
(1) ItemSelected方法有两个参数
第一个参数adapterView表示Spinner组件对象
第二个参数表示下拉框子项
第三个参数代表第几个子项被选中
(2) 使用Toast将被选中的子项信息进行显示
这就是Spinner下拉框组件的全部内容
下面我们介绍ListView列表组件
下面是ListView组件的基本属性和方法
1 android.divider
setDivider 设定分割线的图形
2 android.dividerHeight
setDividerHeight 设定分隔线的高度
3 android.headerDividersEnabled
setHeaderDividersEnabled
是否显示列表开头的分隔线
4 android.footerDividersEnabled
setFooterDividersEnabled
是否显示列表末尾的分隔线
ListView的例子如图所示
ListView一般使用SimpleAdapter作为适配器
主要用于显示ListView的数据
数据源可以为组合类型
ListView组件通过SimpleAdapter
将组合类型数据显示到组件
SimpleAdapter的参数主要有下面五个
第一个参数 上下文对象
第二个参数 数据源是含有Map的一个集合
第三个参数 每一个item的布局文件
第四个参数 new String[]{}数组
数组的里面的每一项
要与第二个参数中
存入的map集合的的key值一样
一一对应
第五个参数 new int[]{}数组
数组里面的第三个参数中的
item里面的控件id
ListView与SimpleAdapter适配器的原理图
如下所示
1 ListView组件向SimpleAdapter发送
获取子项目视图的请求
2 SimpleAdapter组件
动态加载子项列表布局文件
并生成子视图View
3 SimpleAdapter组件访问数据列表
并根据列表子项位置读取对应的数据
4 根据取到的数据
更新到子视图View的各个组件
5 将子视图View返回给ListView组件
ListView显示每个子项
ListView的代码实现如下图所示
1 首先在Activity主视图中
实现下拉框子项单击事件监听器
使用了父类接口
AdapterView.OnItemClickListener
2 定义ListView 变量并初始化
将下拉框子项单击事件
注册到Activity事件监听器
3 数据进行初始化
(1)定义图片id数组int[] iPic
图片名称字符数组String[] strName
图片说明字符数组String[] strContent
(2)定义多列数据列表对象
ArrayList
(3)将显示的数据
对应添加到多列数据列表对象
(4) SimpleAdapter适配器对象进行初始化
它的实现如下图所示
第一个参数 上下文对象为this
第二个参数 多列数据集合mArrayList
第三个参数 每一个item的布局文件
使用系统默认的R.layout.list_item
第四个参数
数组的里面的每一项
要与第二个参数
存入的mArrayList中的key值一样
并且一一对应
第五个参数 new int[]{}数组
数组里面的第三个参数中的
item里面的控件id
4 在Activitity主视图中
重写父类AdapterView的ononItemClick方法
实现下拉框子项单击事件处理
(1) onItemClick方法有两个参数
第一个参数
adapterView表示ListView组件对象
第二个参数 表示下拉框子项
第三个参数 代表第几个子项被选中
(2) 使用Toast将被选中的子项信息进行显示
做完之后ListView的显示效果
如下图所示
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统