9135910

当前课程知识点:Android应用开发基础 >  第三章 Android组件 >  3.4 Android适配器 >  3.4.2 实践案例-自定义适配器

返回《Android应用开发基础》慕课在线视频课程列表

3.4.2 实践案例-自定义适配器在线视频

下一节:讨论-如何解决Android的布局嵌套问题的?

返回《Android应用开发基础》慕课在线视频列表

3.4.2 实践案例-自定义适配器课程教案、知识点、字幕

本节我们通过实例来介绍自定义适配器的使用过程

下面介绍自定义Adapter的使用过程

首先创建一个应用程序

设置应用程序的名字

将上一节listview项目的activity_main.xml和

和list_item.xml两个布局文件拷贝到layout目录

设置线性布局的宽度为100dp

新增一个CheckBox组件

将文本清空

设置gravity属性为底部

设置focusable=false

设置id为checkBox

新建一个ItemBean类存储子项的各项信息

定义图片id数据int iPic

定义图片名称String strName

定义图片说明String strContent

定义图片是否被选中bChecked

右键 Generate->getter and setter

生成getter和setter方法

下面实现自定义适配器MyBaseAdapter类的功能

自定义MyBaseAdapter类继承BaseAdapter

使用ctrl+I 实现接口方法

定义上下文Context mCtx变量

定义ArrayList mArrayList列表变量

以新定义的变量为参数定义构造函数

实现getCount接口返回mArrayList.size()

实现getItem接口返回mArrayList.get(i)

实现getItemId接口返回位置参数i

实现getView接口

定义并初始化mView对象

使用参数mCtx的动态加载器

将布局文件转化为View对象

定义并初始化item布局文件中对应的图像控件

初始化名称文本控件

初始化内容文本控件

初始化ChexkBox控件

初始化ItemBean对象

通过mArrayList.get(i)获取子项数据

设置图像控件的值

设置名称文本控件的值

设置内容文本控件的值

判断mItemBean对象的isbChecked是否为true

如果为true

设置CheckBox控件被选中

最后返回mView对象

把上节的三个数组复制到该主活动中

把图片资源也放入该项目的drawable文件夹下

右键Generate-LayoutCreator

定义ArrayList变量mArrayList

实现AdapterView.OnItemClickListener接口

ctrl+I 实现未实现方法

绑定ListView组件的子项选中事件

OnCreate函数中调用initData方法

实现initData方法

初始化mArrayList对象

将显示的数据对应添加到mArrayList数组

定义并初始化ItemBean对象

在for循环中

定义并初始化ItemBean对象

将图片id存储到itemBean的图片变量中

将图片名称存储到itemBean的名称变量中

将图片说明存储到itemBean的内容变量中

设置itemBean的选项框变量为true 默认选中

将itemBean对象存储到mArrayList数组中

新建MyBaseAdapter适配器并初始化

this为上下文对象

第二个参数为数据集合

将ListView组件与适配器绑定

实现OnItemClick方法

参数i代表子项序号

从0计数

定义临时字符串变量

strMsg赋值为选择了第几个子项

%d代表通配符

使用i+1赋值

如果选项框变量为true

strMsg增加CheckBox被选中

使用Toast显示信息

代码编写完成后运行程序

点击ListView子项 显示子项信息

下面介绍如何优化自定义Adapter

首先创建一个应用程序

设置应用程序的名字

本项目是在上个项目的基础上

对自定义适配器进行优化

实现getView接口 定义化mView对象

如果view为空

使用mCtx的动态加载器

将布局文件转化为View对象

选择子布局使用LayoutCreator插件

选择Create ViewHolder

自动生成ViewHolder类

定义ViewHolder类对象

初始化mViewHolder对象

使用mView.setTag将mViewHolder与mView绑定

如果view不为空

mView等于view

mViewHolder通过mView.getTag赋值

初始化ItemBean对象

通过mArrayList.get(i)获取子项数据

设置图像控件的值

设置名称文本控件的值

设置内容文本控件的值

判断mItemBean对象的isbChecked是否为true

如果为true

设置CheckBox控件被选中

这样adapter就优化完成了

其他代码均和上节课一样

运行效果也一样

这就是Android自定义适配器的全部内容

请大家按照讲课的内容完成自定义适配器的

适配器优化两个例子的代码编写

在Android的模拟器和手机中分别运行

通过实例理解自定义适配器的优化过程

Android应用开发基础课程列表:

课程教案

-1 Android应用开发基础-课程标准

-2 Android应用开发基础-教案

第一章 Android概述

-讨论:Android应用开发基础资源下载地址

-讨论的问题:华为“鸿蒙系统”会取代安卓吗?

-Android Studio4.1.2安装常用问题汇总2021.3.15

-1.1 Android概述

--1.1 Android概述

--1.1 Android Studio安装与配置-实践案例

-1.1 Android概述--作业

-1.2 Android程序

--1.2 Android程序

--1.2 第一个Android应用程序-实践案例

-1.2 Android程序--作业

-1.3 Android程序调试

--1.3 Android程序调试

--1.3 Android程序调试-实践案例

-1.3 Android程序调试--作业

-讨论-完成第一个Android程序需要多长时间?

第二章 Android视图

-讨论-什么是Activity?

-2.1 Activity概述

--2.1 Activity概述

--2.1.1 实践案例-Activity生命周期

--2.1.2 实践案例-Activity跳转和数据传递

-2.1 Activity概述--作业

-2.2 Activity应用

--2.2 Activity应用

--2.2 实践案例-Activity四种启动模式

-第2章 Android视图--2.2 Activity应用

-讨论-怎么理解常用的四种启动模式?

第三章 Android组件

-讨论:Android在五个常用布局外还有哪几种布局方式?

-3.1 Activity布局

--3.1 Activity布局

--3.1 实践案例-Android布局

-3.1 Activity布局--作业

-3.2 Android基础组件

--3.2 Android基础组件

--3.2.1 实践案例-文本和按钮组件

--3.2.2 实践案例-编辑框和进度条组件

-3.2 Android基础组件--作业

-3.3 Android中级组件

--3.3 Android中级组件

--3.3.1 实践案例-复选框和开关组件

--3.3.2 实践案例-单选框和图像组件

-3.3 Android中级组件--作业

-3.4 Android适配器

--3.4.1 系统适配器

--3.4.2 自定义适配器

--3.4.1实践案例-系统适配器

--3.4.2 实践案例-自定义适配器

-3.4 Android适配器--作业

-讨论-如何解决Android的布局嵌套问题的?

第四章 Android Fragment

-讨论:Fragment的优点?

-4.1 Fragment碎片组件

--4.1.1 Fragment静态加载

--4.1.2 Fragment与Activity通讯

--4.1.3 Fragment动态加载

--4.1.1 实践案例-Fragment静态加载

--4.1.2 实践案例-Fragment的动态加载

-4.1 Fragment碎片组件--作业

-4.2 ViewPager翻页类组件

--4.2.1 ViewPager翻页类组件

--4.2.2 引导页和标题栏

--4.2 实践案例-引导页和选项卡

-4.2 ViewPager翻页类组件--作业

-讨论:fragment与activity的生命周期有哪些不同?

第五章 广播

-讨论:Android广播有什么作用?

-5.1 Android广播概述

--5.1 Android广播概述

--5.1.1 实践案例-手机电量显示

--5.1.2 实践案例-手机充电状态显示

-5.1 Android广播概述--作业

-5.2 Android广播工作原理

--5.2 Android广播工作原理

--5.2.1 实践案例-手机网络状态显示

--5.2.2 实践案例-短消息接收

-5.2 Android广播工作原理--作业

-5.3 自定义广播

--5.3 自定义广播

--5.3 实践案例-自定义广播与有序广播

-第5章 广播--5.3 自定义广播

-5.4 有序广播

--5.4有序广播

--5.4.2 实践案例-登录广播-记住密码

--5.4.2 实践案例-登录广播-强制退出

-第5章 广播--5.4 有序广播

-讨论:广播的动态注册和静态注册有什么区别?

第六章 Android服务

-讨论:Android的服务有什么作用?

-6.1 系统服务概述

--6.1 系统服务概述

-6.1 系统服务概述--作业

-6.2 访问系统服务

--6.2 访问系统服务

--6.2 实践案例-通知服务

-6.2 访问系统服务--作业

-6.3 自定义服务

--6.3 自定义服务

--6.3.1 实践案例-启动服务

--6.3.2 实践案例-绑定服务

--6.3.3 实践案例-后台服务

-第6章 Android服务--6.3 自定义服务

-6.4 多线程

--6.4 多线程

--6.4.2 实践案例-MyService下载

--6.4.3 实践案例-MyIntentService

--6.4.4 实践案例-AsyncTask实现对话框下载

--6.4.5 实践案例-下载精灵

-第6章 Android服务--6.4 多线程

-讨论:Android中怎么启动Service?

第七章 内容提供者ContentProvider

-讨论:ContentProvide的作用是什么?

-7.1 Android运行权限

--7.1 Android运行权限

--7.1 实践案例-拨打电话与发送短信

-7.1 Android运行权限--作业

-7.2 URL URI概述

--7.2 URL URI概述

-第7章 内容提供者ContentProvider--7.2 URL URI概述

-7.3 ContentProvider概述

--7.3 ContentProvider概述

--7.3 实践案例-读取联系人

-第7章 内容提供者ContentProvider--7.3 ContentProvider概述

-7.4 访问通讯录

--7.4 访问通讯录

--7.4.1 实践案例-读取通讯录

--7.4.2 实践案例-添加通讯录

--7.4.3 实践案例-删除更改通讯录

-第7章 内容提供者ContentProvider--7.4 访问通讯录

-7.5 课后作业案例

--7.5.1 实践案例-文件管理器-查看

--7.5.2 实践案例-文件管理器-播放

-讨论:ContentProvide如何使用?

第八章 多媒体

-讨论:Android多媒体主要应用于哪些场景?

-8.1 相机服务

--8.1 相机服务

--8.1.1实践案例-拍照服务

--8.1.2 实践案例-相册服务

-8.1 相机服务--作业

-8.2 音视频服务

--8.2 音视频服务

--8.2.1实践案例-音乐播放

--8.2.2 实践案例-视频播放

-8.2 音视频服务--作业

-讨论:Android视频组件的使用流程?

第九章 网络技术

-讨论:为什么使用Json作为网络的通讯格式?

-9.1 网络服务概述

--9.1 网络服务概述

--9.1 实践案例-WebView和Http服务

-9.1 网络服务概述--作业

-9.2 网络框架

--9.2 网络框架

--9.2 实践案例-okhttp框架

-9.2 网络框架--作业

-9.3 Json

--9.3 Json

--9.3 实践案例-json协议

-第9章 网络技术--9.3 Json

-9.4 Volley

--9.4 volley

--9.4 实践案例-volley框架

-第9章 网络技术--9.4 Volley

-讨论:OkHttp和Volley的有什么区别?

第十章 数据存储

-讨论:Android的存储方式有哪几种?

-10.1 文件存储

--10.1 文件存储

--10.1.1 实践案例-文件读写布局

--10.1.2 实践案例-文件读写

--10.1.3 实践案例-SharedPreference文件读写

-10.1 文件存储--作业

-10.2 数据库存储

--10.2 数据库存储

--10.2.1 实践案例-Sqlite数据库操作布局

--10.2.2 实践案例-Sqlite数据库操作

-10.2 数据库存储--作业

-讨论:SQLite的基础操作的流程是什么?

课程实训(不计入考核)

-第1章 实训简介以及开发环境配置

--实训项目简介PPT以及实训指导书

--1.1 实训项目简介

--1.2 项目开发环境配置

-第2章 在线音乐播放器整体设计以及服务端开发

--在线音乐播放器整体介绍PPT以及服务端开发实训指导书

--2.1 在线音乐播放器-整体设计

--2.2 在线音乐播放器-服务端开发

-第3章 在线音乐播放器-客户端开发

--3.1 客服端开发实训指导书以及PPT

--3.2 客户端开发-讲课视频

-第4章 在线音乐播放器-完整版

--4.1 实训指导书以及PPT

--4.2 在线音乐播放器-完整版授课视频

-第5章 QQ聊天项目

--5.1 实训指导书以及PPT

--5.2 QQ聊天项目授课视频

-第6章 在线点餐系统

--6.1 实训指导书以及PPT

--6.2 在线点餐系统授课视频

3.4.2 实践案例-自定义适配器笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。