android中适配器的作用,适配器模式 在Android中的简单理解「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
Android
在Android上提到适配器模式就会想到最常用的ListView和BaseAdapter
在这个功能的使用中,类似于适配器模式的对象适配器
例如在ListView中想用一个getView()方法,但是不同的数据,不同的需求,会有不同的getView()结果,所以getView()不能写死了,那么可能就想到了用适配器模式
所以ListView里面包含了一个ListAdapter的成员变量,实际上是ListView继承了AbsListView,ListAdapter变量是在AbsListView中声明的
然后BaseAdapter是实现了ListAdapter的,那么我们自定义的***Adapter继承了BaseAdapter,其实也就相当于间接实现了ListAdapter,并且***Adapter会具体去实现getView()方法
那么ListView就可以通过调用setAdapter(ListAdapter adapter)方法,将***Adapter传进去,从而实现了我们想要的结果
Java
适配器模式有两种:
类适配器
对象适配器
场景:
假如A类想用M方法,X类有M方法,但是M方法的结果不一定完全符合A类的需求
那么X类就是写死了,不好用,这样设计不好
那就把X类换成一个接口,弄出一些B,C,D,E…..类中间类出来,让他们都有一个方法来处理M方法的东西,再给A类用
类适配器:
设计一个接口I,让他也有M方法
然后设计一个B类,写好符合A类需求的specialM方法
然后让A类继承B类,并实现I接口的M方法
最后在A类的M方法中以super的方式调用B类的specialM方法
对象适配器:(更多是用对象适配器)
设计一个接口I,让他也有M方法
然后设计一个B类,写好符合A类需求的specialM方法
然后在A类中声明一个B类变量,并且A类实现I接口,那么A类也就有了M方法
最后在A类的M方法中,如果需要,就可以选择调用B类的specialM方法
或者设计一个B类,实现I接口的M方法
然后在A类中声明一个I类变量,再直接调用I接口的M方法
在调用A类的M方法之前,通过例如setAdapter(I Adapter)这样的方法,将B类设置成A类的成员变量
这样就保证了A类和I接口不变,适配不同情况的时候,写一个类似B类的中间类进行适配就可以了
总之,两端不变,通过不同的选择方式,选择不同的中间类,也就是适配器模式了
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138649.html原文链接:https://javaforall.cn
相关文章
- 一起看 I/O || Android 开发者不能错过的 13 件事
- 策略模式及Android源码中的应用
- android sdk根目录,Android SDK位置
- android declare-styleable 和style,Android 关于declare-styleable属性的写法….
- android sdk安装过程,图文详解Android 3.0 SDK安装教程
- android 获取收到短信验证码,Android自动获取短信验证码
- android短信验证码方案,Android之短信验证码
- android telephony 原理解析与开发指南_Android逆向pdf
- android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用
- android 系统浏览器 源码-Android 最最最简单的浏览器代码
- 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
- 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 反汇编二进制机器码 | 打印反汇编数据 )
- 【Android Gradle 插件】ProductFlavor#externalNativeBuild配置 与 AppExtension#externalNativeBuild 配置区别
- Android @IntDef注解取代Java enum枚举提高性能详解手机开发
- Unable to resolve target ‘android-i’详解手机开发
- Android Call(打电话)的基本知识详解手机开发
- android ignore文件备份详解手机开发
- 微软押注混合工作模式崛起 推出Cloud PC吸引苹果和Android用户
- Android系统与Linux之间的联系(android和linux)
- 多图:开发者文档揭示 Android Auto 第三方应用 UI 规范
- android版本检测Android程序的版本检测与更新实现介绍
- Android桌面Widget开发要点解析(时间日期Widget)
- Android中Dialog去黑边的方法