android中适配器的作用,适配器模式 在Android中的简单理解「建议收藏」

android中适配器的作用,适配器模式 在Android中的简单理解「建议收藏」Android在Android上提到适配器模式就会想到最常用的ListView和BaseAdapter在这个功能的使用中,类似于适配器模式的对象适配器例如在ListView中想用一个getView()方法,但是不同的数据,不同的需求,会有不同的getView()结果,所以getView()不能写死了,那么可能就想到了用适配器模式所以ListView里面包含了一个ListAdapter的成员变量,实…

大家好,又见面了,我是你们的朋友全栈君。

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.net/138649.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 交叉编译lrzsz

    交叉编译lrzsz参考:https://blog.csdn.net/linucos/article/details/5582979https://blog.csdn.net/wangzhen209/article/details/32713715https://blog.csdn.net/zijie_xiao/article/details/50934279步骤:获取源码:https://www…

    2022年6月23日
  • 人脸识别算法初次了解

    人脸识别算法初次了解

    2021年12月1日
  • rbac权限管理设计 7表_数据库角色权限表设计

    rbac权限管理设计 7表_数据库角色权限表设计RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)当用户量非常多的时候,逐一的给用户授权角色是一件很痛苦的事情,于是引出组的概念。

    2022年9月29日
  • Vista/Win7 使用Vista Loader激活后的 Windows/Linux双启动解决方案

    Vista/Win7 使用Vista Loader激活后的 Windows/Linux双启动解决方案Windows与Linux的双启动,一般使用Grub4Dos(以下简称Grub)来作双启动的工具。自从使用VistaLoader来“软改”bios来激活Vista/Win7后

    2022年7月3日
  • Linux文件之strstr函数、将一个整数,结构体和结构体数组写进文件里

    Linux文件之strstr函数、将一个整数,结构体和结构体数组写进文件里linux

    2022年8月31日
  • 什么是粘包?_网络粘包

    什么是粘包?_网络粘包TCP/IP协议簇建立了互联网中通信协议的概念模型,该协议簇中的两个主要协议就是TCP和IP协议。TCP/IP协议簇中的TCP协议能够保证数据段(Segment)的可靠性和顺序,有了可靠的传输层协议之后,应用层协议就可以直接使用TCP协议传输数据,不在需要关心数据段的丢失和重复问题。图1-TCP协议与应用层协议IP协议解决了数据包(Packet)的路由和传输,上层的TCP协议不再关注路由和寻址,那么TCP协议解决的是传输的可靠性和顺序问题,上层不需要.

    2022年8月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号