在android开发中列表的使用是十分常见的。google对列表的封装使列表既有显示传统文本列表的能力,也有加入了诸如选择项、复选项等处理事件的能力。这里写一些我这几天对这个问题的理解。
在android的api中,LIST和adapter都被放在了android.widget包内。包内的具体结构我这里先不展示了,主要侧重列表和adapter。adapter的作用就是将要在列表内显示的数据和列表本身结合起来。列表本身只完成显示的作用,其实他就是继承自VIEWGROUP类。但是他又有一个独特的函数就是setAdapter()就是完成了view和adapter的结合。adapter如同其本身含义,其实就是一个适配器,他可以对要显示的数据进行统一的封装,主要是将数据变成view提供给list。
我们先来看看adapter的体系:
public interface Adapter----0层(表示继承体系中的层次)
public interface ExpandableListAdapter---(无所谓层次因为没有其他接口继承实现它)
这是adapter的始祖,其他个性化的adapter均实现它并加入自己的接口。
public interface ListAdapter----1层
public interface SpinnerAdapter----1层
public interface WrapperListAdapter----2层(实现ListAdapter)
以上接口层面上的体系已经完了。可以看出来作为widget view的桥梁adapter其实只分为2种:ListAdapter和SpinnerAdapter以及ExpandableListAdapter。也就是说所有widget也就是基于list和spinne与ExpandableList三种view形式的。
由于在实际使用时,我们需要将数据加入到Adapter,而以接口形式呈现的adapter无法保存数据,于是Adapter就转型为类的模式。
public abstract class BaseAdapter----2层(实现了ListAdapter和SpinnerAdapter)
以抽象类的形式出现构造了类型态下的顶层抽象,包容了List和Spinner
public class ArrayAdapter----3层
public class SimpleAdapter---3层
public class CursorAdapter----3层(CursorAdapter其后还有子类这里先不探讨)
基本体系有了之后,让我们看看顶层Adapter里有哪些方法(只列举常用的):
abstract Object getItem(int position)
abstract int getCount()
abstract long getItemId(int position)
abstract int getItemViewType(int position)
abstract View getView(int position,View convertVeiw,ViewGroup parent)
以上是比较重要的方法,ArrayAdapter他们也是重新实现以上方法的。在实际的开发过程中,往往我们要自己做属于自己的Adapter,以上方法都是需要重新实现的。这个在android提供的APIdemo例子中可以看到。今天先写这么多
分享到:
相关推荐
在Android开发中,`Adapter`体系扮演着至关重要的角色,特别是在处理列表展示和用户交互时。`Adapter`是连接数据源和视图组件的关键,它允许开发者将各种数据类型转换成可显示的视图元素。在Android的`android....
#### 三、Android中的Adapter体系 在Android开发中,Adapter的主要作用是将数据模型中的数据绑定到视图组件上,如ListView、Spinner等。Android提供了多种类型的Adapter来满足不同的需求: 1. **Adapter接口**:这...
Adapter体系结构的核心在于,它连接了一个 AdapterView(如ListView、GridView)与数据源,负责提供数据项到View的映射。Adapter的主要职责是为数据集中的每个数据项生成一个对应的View,并通过`getView()`方法实现...
2. **Itential Adapter体系**:Itential提供了一种灵活的适配器架构,允许开发人员创建自定义适配器来连接到各种IT管理工具,如监控系统、配置管理系统、事件处理平台等。这些适配器能够读取、写入或操作目标系统的...
BizTalk SQL Adapter是一个具体的测试用例,展示了微软软件测试自动化体系的实际应用。这个案例中,测试用例设计涵盖了从前提条件验证到清理阶段的全过程,确保了每次测试的独立性和准确性。此外,测试用例还特别...
介绍了ATM AAL2的协议结构、分组格式及其应用,并对ATM AAL2 Trunking在窄带网络中的应用做了较详尽的分析,最后给出了基于AAL的网络融合方案。
而byte-char对称性则意味着,处理字节流的类和处理字符流的类有对应的子类,形成两个平行的子类体系,这样可以方便地在字节流和字符流之间进行转换。 此外,Java/IO库的设计还考虑到了客户端的便利性。开发者无需...
2. 结构型设计模式:这类模式关注如何组合对象和类,以形成更大的结构,如适配器模式(Adapter)、装饰器模式(Decorator)、桥接模式(Bridge)、组合模式(Composite)、外观模式(Facade)、享元模式(Flyweight...
适配器模式(Adapter Pattern):将一个类的接口转换为另一个类的接口,以便于不同类之间的通信和合作。 外观模式(Facade Pattern):提供了一个统一的接口,以便于访问和操作子系统中的多个接口。 行为型软件设计...
总之,"dicomweb-adapter.rar"是一个关键组件,它解决了传统DICOM系统与现代DICOMweb服务之间的互操作性问题,使得医疗影像数据可以在不同体系结构之间无缝流动。通过理解和利用这个适配器,医疗机构和开发者能够...
2. 结构型模式:包括适配器模式(Adapter)、装饰器模式(Decorator)和代理模式(Proxy),它们关注如何组合类和对象,以实现新的功能或者增强现有功能。 3. 行为型模式:如策略模式(Strategy)、观察者模式...
- 学生可能研究了如 MVC(模型-视图-控制器)、Observer、Adapter 等常见的设计模式,以及在实际项目中如何应用这些模式来解决特定问题。 8. **案例分析**: - 可能通过分析现有的开源项目或商业软件的架构,比如...
孙云山老师的“软件设计模式与体系结构”课程深入探讨了这些模式及其在构建复杂系统中的应用。本资料集合包含了课后习题的第234章答案,这将有助于学生深化对设计模式的理解,并提升其实际应用能力。 设计模式是...
结构型模式如适配器(Adapter)、装饰器(Decorator)、代理(Proxy)和桥接(Bridge)等,关注如何组合和组装对象,使不同组件之间可以协同工作,增强系统的结构。 行为型模式如观察者(Observer)、策略...
public class Adapter implements Target { private Adaptee adaptee = new Adaptee(); public void request() { adaptee.specificRequest(); } } ``` 行为型模式关注对象之间的通信模式。常见的行为型模式...
### 利用ADO.NET的体系架构打造通用的数据库访问通用类 #### 一、引言 在当前软件开发中,数据库访问是几乎所有应用程序的核心部分。为了实现跨平台、跨数据库类型的通用性,开发者通常需要创建一套能够适应多种...
6. **资源适配器层(Resource Adapter Layer)**:连接J2EE应用到外部系统,如ERP、CRM或其他非Java系统,通过资源适配器实现集成。 在实际设计过程中,应遵循松耦合、高内聚的原则,使得各层之间职责明确,降低...
具体来说,内核提供了一系列API,例如`i2c_register_adapter()`和`i2c_unregister_adapter()`,用于注册和注销Adapter;同时也有`i2c_new_device()`和`i2c_del_device()`等API用于管理Device的生命周期。 #### 三、...