展开

关键词

ListView通用泛型适配器

+)我们在用他的同时也用到了一个叫做适配器Adapter的东西。一般我们用一个类继承BaseAdapter,来进行数据和控件的适配。 但是我们每一种适配器都只是为了适配一种数据源和一种布局,如果用到的少还好,如果要用到十几种,我们是不是要写十几个适配器呢?这个想法真的是太蠢了! 有一种适配器写法,可以做到一个适配器与多种类型数据和布局进行适配,这个东西叫做通用适配器(因为他是用到泛型实现的,我称他为泛型适配器),今天我们来看一下这种适配器的写法: 在写之前呢,我们首先回忆一下之前所用到的 现在我们首先来说一下通用适配器和一般的适配器的区别和相同点: ? 接下来我们正式来看一下通用适配器的写法: 1.先创建好我们今天需要的控件、源数据以及Bean类。 控件只有一个ListView <? public View getView(int position, View convertView, ViewGroup parent) { return null; } } 3.我们说通用适配器传入布局

15520

一个适用于ListViewGridViewRecyclerView的通用适配器

17120
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android之自定义实现BaseAdapter(通用适配器三)

    ViewHolder中去,在ViewHolder中写入一个链式的方法,来帮助我们来实现功能(关于ViewHodler类的代码我就不再重复写了,代码在此:Android之自定义实现BaseAdapter(通用适配器一 R.id.mTv2, t.getSex()); holder.setImageResource(R.id.img1,资源id).setImageBitmap(R.id.img2,bm); } 好了,一个通用适配器就已经完成了 整体框架和代码都已经实现了,我将所有的代码都综合一下,写在下面,方便大家使用,分别是MainActivity.java(主界面类,负责传参设置ListView的数据)、MyAdapter.java(自定义的适配器 )、MyBaseAdapter.java(通用适配器类)、ViewHolder.java(通用的持有类对象)、以及实体类Student.java MainActivity.java public class

    20820

    设计模式-适配器模式(类适配器、对象适配器、接口适配器详解)

    文章目录 适配器模式 类适配器 对象适配器 接口适配器 总结 适配器模式 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作 适配器模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式 工作原理 将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容。从用户的角度看不到被适配者,是解耦的/。 用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法,用户收到反馈结果,感觉只是和目标接口交互。 对象适配器 顾名思义,通过实例对象(构造器传递)来实现适配器,而不是再用继承,其余基本同类适配器。即:持有src类,实现dst类接口,完成src->dst的适配。 接口适配器 继承那边可以解耦了,那能不能从接口这边解耦? 接口适配器也称缺省适配器模式,适用于一个接口不想使用其所有的方法的情况。

    11830

    设计模式之适配器模式 adapter 适配器模式分类概念角色详解 类适配器 对象适配器 接口适配器 双向适配器

    现实世界中的适配器模型 先来看下来几个图片,截图自淘宝 上图为港版的插头与港版的插座 上图为插座适配器卖家的描述图 上图为适配后的结果 现实世界中适配器模式 角色分类 注意:此处说的接口,并不是单纯的指Interface,而是指一切可以提供方法调用的类型,可能是接口也可能是类 客户使用适配器的过程: 客户通过目标接口调用适配器的方法,对适配器发出请求 适配器使用被适配者接口把请求进行处理 适配器分类 适配器三种模式 类适配器    对象适配器接口适配器 想要把一个类的接口转换为客户希望的另外一个接口必须要有输入输出,有目标  有源所以作为一个适配器,必须要 一手拿着被适配者也就是源  Adaptee,也就是拥有一个Adaptee对象,那么就是对象 适配器如果实现Adaptee,那么就是 接口适配器 现在回想下,我们上面的例子 适配器 实现了目标接口,并且拥有一个Adaptee 对象 作为属性,很显然就是对象适配器适配器 根据上面的描述,如果继承Adaptee,那么就是类 适配器, 在Java中不允许多继承,既然已经继承了Adaptee  ,

    1.2K30

    设计模式之适配器模式适配器模式

    适配器模式 两个不兼容的接口之间的桥梁,可以使接口不兼容导致不能一起工作的那些类可以一起工作 UML ? UsbTypeAImpl() ; usbTypeA.printTypeA(); } } 当我们的手机接口Type-A时,但是数据线只有Type-C的时候,就需要用转接口做适配,这种情况下就要增加一个适配器 /** * @Desc 通过适配器访问 Usb-C */ public class Adapter implements UsbTypeA { private UsbTypeC

    31450

    适配器模式

    适配器模式的定义:将一个类的接口变成另一个客户端所期待的的接口,从而使原本因接口不匹配而无法在一起工作的两个类都能在一起工作。 1:目标角色:把其他类转成何种接口,也就是我们期望的接口。 ; } } 2:Adaptee元角色,你想把谁转成目标角色,这个谁就是原角色,它是已经存在的或者运行良好的类或者对象,经过适配器的包装,他会成为一个全新的角色。 ; } } 3:适配器角色:适配器角色是核心角色,其他两个角色都已经存在,而适配器角色是新建立的他指责非常简单,把原角色转换成目标角色,通过继承或者类关联的方式 package adapter main(String[] args) { //原有的业务逻辑 Target target = new ConcreteTarget(); target.request(); //增加适配器之后的业务逻辑

    18230

    适配器模式

    在面向对象的程序设计中,我们经常会反复地遇到相同的问题,于是有人就做了抽象,把这些可能反复出现的场景提取出来,用一种通用的方法去解决它。我们把这种通用的方法叫做设计模式。 使用Adaptee提供的方法实现Target接口,这就是适配器做的事情。 这就是适配器的能力啊。 这个程序里,字节InputStream 到字符 Reader 的适配器类 InputStreamReader 居功至伟。 我们把适配器类的分析拿过来,分析一下 java io 这个 package 里的类都是些什么。

    43080

    适配器模式

    适配器提供客户类需要的接口,适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。 也就是说,当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此适配器可以使由于接口不兼容而不能交互的类可以一起工作。 在类适配器模式中一个对象适配器可以把多个不同的适配者适配到同一个目标,也就是说同一个适配器可以把适配者类和它的子类都适配到目标接口。 在对象适配器模式中由于适配器类是适配者类的子类,因此可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。 与类适配器模式相比,对象适配器模式要想置换适配者类的方法就不容易。

    32120

    适配器模式

    定义 适配器用于让两个无关的类之间产生联系,可以一起协同工作。 解释 就拿小米 6手机为例子,它没有圆孔来让耳机插入,就只有一个方孔,那我们怎么插耳机呢? 这个转接口其实就是一个适配器,它让耳机和手机本来不可以通信的两个事物之间产生了关系。 形式 类的适配器模式 这个通过继承实现的,不推荐大家使用。 对象的适配器模式 这个是通过实现接口实现的,我下面的代码演示就是使用的这种形式。(推荐使用) 在面向对象的编程中,我们推荐使用组合/聚合,而不是去使用继承。 代码 实际编码中不推荐大家使用中文命名类名,我这里是为了方便大家理解才使用的, 适配器类 interface USB{ void 插圆孔(); void 插方孔(); } class 耳机 建议 我只是把主要的思想给大家讲解了,真正要使用好适配器模式还是需要大家自己去理解和体会。比如在看源码的过程中就可以自己去体会那样设计的好处,码农和大牛之间的差距可能就是在思想上的高度。

    41230

    适配器模式

    适配器提供客户类需要的接口,适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用。 也就是说,当客户类调用适配器的方法时,在适配器类的内部将调用适配者类的方法,而这个过程对客户类是透明的,客户类并不直接访问适配者类。因此适配器可以使由于接口不兼容而不能交互的类可以一起工作。 在类适配器模式中一个对象适配器可以把多个不同的适配者适配到同一个目标,也就是说同一个适配器可以把适配者类和它的子类都适配到目标接口。 在对象适配器模式中由于适配器类是适配者类的子类,因此可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。 与类适配器模式相比,对象适配器模式要想置换适配者类的方法就不容易。

    6310

    适配器模式

    ---- 在学习SpringMVC的过程中,看到了适配器模式,然后就记下了,回来填坑 1. 适配器模式(Adapter Pattern) 将一个接口转换成客户希望的另一个接口,使不兼容的类可一起工作,其组成可分为: Target:客户所需要的接口 Adapter:适配器 Adaptee:被适配者 ] args) { // 创建被适配者 Adaptee adaptee = new Adaptee(); // 创建适配器 SpringMVC中的应用 先放一张请求流程图,其中涉及到了映射器和适配器以及处理器 ? Spring提供一个适配器模式中的Target接口,那么只要实现了Adapter就可以适配一种Handler,不用在DispatcherServlet里进行判断了。

    24510

    适配器模式

    适配器模式定义:将一个类的接口,转化成客户期望的另一个接口,适配器让原来接口不兼容的类可以合作无间。 适配器在现实中的表现:插座转化器,形状拼图等等。 面向对象中的实现: 本文例子: 狗类,兔子类,适配器类,测试类 要求: 1.缺少兔子类对象,先用狗类冒充一下 2.不会让客户调用兔子类的方法,发生改变(例如在客户调用的方法内做判断如果是某个值,去调用狗类的方法 通过适配器,成功的将新的兔子类给实现了,只不过内部走的是狗的方法。testRabbit()还是正常的调用,不做任何改变。 -----------------"); 45 testDog(dog); 46 47 System.out.println("----------------------适配器 在咕咕叫 4----------------------狗的跳与叫-------------------- 5小黑狗,跳一米 6小黑狗,汪汪的叫 7----------------------适配器

    20840

    适配器模式

    适配器模式 模式定义 将一个类的接口转换成客户希望的另一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 应用场景 当你希望使用某些现有类,但其他接口与你的其他代码不兼容时,请使用适配器模式 当你希望重用几个现有的子类,这些子类缺少一些不能添加到超类中的公共功能时 ,请使用适配器模式 优点 符合单一指责原则 符合开闭原则 实现 对象适配器模式 package v1; /** * 对象适配器模式 * 需求: * 将家用220v电压转换成手机能使用的5v电压 System.out.println(String.format("原始电压:%d -> %d",i,5)); return 5; } } 类的适配器模式 package v2; /** * 类的适配器模式 */ class Adaptee{ private int output220v; public int output220v(){

    5610

    适配器模式

    思想: 写一个抽象类继承HttpServlet,在这个类中加入通用功能。 以后所有的servlet类都继承自这个 类。 以达到扩展Servlet的功能. 这个类是一个抽象类,主要用于增强Servlet的功能,在这个类中 所有的servlet都有的功能 * @author Administrator * 1.输出json数据的功能 * 设计模式 :适配器模式

    29750

    适配器Adapter

    适配器Adapter 动机 模式定义 实例 结构 要点总结 笔记 动机 在软件系统中,由于应用环境的变化,常常需要将”一些现存的对象”放在新的环境中应用.但是新的环境要求的接口是这些现存对象所不满足的. 要点总结 Adapter 模式主要是应用于”希望复用一些现存的类.但是接口与服用环境要求不一样的情况”,在遗留代码复用,类库迁移方面非常有用 GoF23定义了两种Adapter模式的实现接口:对象适配器和类适配器 .但类适配器采用”多继承”的实现方式,一般不推荐使用,对象适配器采用”对象组合”的方式,更符合松耦合精神 Adapter模式可以实现的非常另外,不必拘泥于Gof23中定义的两种接口.例如,完全可以将Adapter 模式中的”现存对象”作为新的接口方法参数,来达到适配器目的 笔记 适配器得能适配 有内在实现层面的关联性 有内在功能的可复用性 ,可以把Adaptee转换为Itarget stl中的queue内部使用的就是 public继承是符合他的接口规范 protected和private继承是实现继承 用它的实现 一般不使用类适配器 只使用 对象适配器 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    6010

    适配器模式

    JDBC给出一个客户端通用的抽象接口,每一个具体数据库引擎(如SQL Server、Oracle、MySQL等)的JDBC驱动软件都是一个介于JDBC接口和数据库引擎接口之间的适配器软件。 adapter pattern),也叫默认适配器模式、接口适配器模式 类适配器模式(class adapter pattern) 类适配器模式在编译时实现target(目标)接口。 在这种适配器模式中,适配器包装了一个类实例。在这种情况下,适配器调用包装对象实例的方法。 类适配器模式和对象适配器模式的对比 优点 类适配器模式(class adapter pattern): 由于适配器adapter类是适配者adaptee类的子类,因此可以在适配器类中置换一些适配者的方法 对象适配器模式: 类适配器模式的优点就是对象适配器模式的缺点,不能置换适配者类的方法。

    9840

    适配器模式

    适配器模式其实很简单,或者说学了设计模式到现在,虽然每次看到各种名字的设计模式就觉得很高端,但当真正了解过后才知道其实也没有那么玄乎,有的东西在我们平时的时候都已经用到过了。 比如这次我们要说的适配器模式,说白了,就是以前的代码接口,和我们客户端需要调用的接口不一致,但以前代码功能又是我们想要的功能。 System.out.println("这是最终要用到的方法,或者需要适配的方法"); 12 } 13 } 1 package day_26_adapter; 2 3 /** 4 * 适配器 String[] args){ 11 Target target = new Adapter(); 12 target.request(); 13 } 14 } 适配器模式 一家篮球俱乐部里有一名外籍篮球运动员,但是教练和外籍运动员语言不同,当然不能换教练更不能换运动员,这个时候就有一个翻译在其中,翻译者充当的就是适配类角色,我们用这实际的例子来看看UML类结构是怎样的,以此来加深我们对适配器模式的理解

    35250

    适配器模式

    在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。 nemo',3)), RunningFish(Fish('dollar',1))) 上面的例子中,Fish的并不具有running_speed()方法,所以添加适配器

    11120

    适配器模式

    但很多时候比如投屏,插移动硬盘你都得借助适配器来转接。你不用考虑拆开你的macbook,只要转接器就够了。 err => { reject(err); }); }); } } export default Request; 适配器模式是一对相对简单的模式 在系列文章提到的设计模式中,有一些模式跟适配器模式的结构非常相似,比如装饰者模式、代理模式。这几种模式都属于“包装模式”,都是由一个对象来包装另一个对象。区别它们的关键仍然是模式的意图。 适配器模式主要用来解决两个已有接口之间不匹配的问题,它不考虑这些接口是怎样实现的,也不考虑它们将来可能会如何演化。适配器模式不需要改变已有的接口,就能够使它们协同作用。

    15910

    相关产品

    • 通用文字识别

      通用文字识别

      通用文字识别(General OCR)提供通用印刷体识别、通用印刷体识别(高精度版)、通用印刷体识别(高速版)、通用手写体识别、英文识别等多种服务,支持将图片上的文字内容,智能识别为可编辑的文本,可应用于随手拍扫描、纸质文档电子化、电商广告审核、智能翻译等场景,大幅提升信息处理效率。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券