Android中的Adapter总结

一、Adapter的介绍

An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set.

一个Adapter是AdapterView视图与数据之间的桥梁,Adapter提供对数据的访问,也负责为每一项数据产生一个对应的View。其作用如下图所示:

二、Adapter的继承关系

有两个adapter的体系,如下:

1、

2、

三、Adapter中的方法

在实际应用中,adapter的继承体系应用的更为广泛,所以,要对Adapter的方法有所了解

public interface Adapter {
    // 为了避免产生大量的View浪费内存,在Android中,AdapterView中的View是可回收的使用的。比如你有100项数据要显示,而你的屏幕一次只能显示10条数据,则
    // 只产生10个View,当往下拖动要显示第11个View时,会把第1个View的引用传递过去,更新里面的数据再显示,也就是说View可重用,只是更新视图中的数据用于显示新
    // 的一项,如果一个视图的视图类型是IGNORE_ITEM_VIEW_TYPE的话,则此视图不会被重用
    static final int IGNORE_ITEM_VIEW_TYPE = AdapterView.ITEM_VIEW_TYPE_IGNORE;  

    static final int NO_SELECTION = Integer.MIN_VALUE;  

    // 注册一个Observer,当Adapter所表示的数据改变时会通知它,DataSetObserver是一个抽象类,定义了两个方法:onChanged与onInvalidated
    void registerDataSetObserver(DataSetObserver observer);  

    // 取消注册一个Observer
    void unregisterDataSetObserver(DataSetObserver observer);  

    // 所表示的数据的项数
    int getCount();  

    // 返回指定位置的数据项
    Object getItem(int position);  

    // 返回指定位置的数据项的ID
    long getItemId(int position);  

    // 表示所有数据项的ID是否是稳定的,在BaseAdapter中默认返回了false,假设是不稳定的,在CursorAdapter中返回了true,Cursor中的_ID是不变的
    boolean hasStableIds();  

    // 为每一个数据项产生相应的视图
    View getView(int position, View convertView, ViewGroup parent);  

    // 获得相应位置的这图类型
    int getItemViewType(int position);  

    // getView可以返回的View的类型数量。(在HeaderViewListAdapter中可以包含Header和Footer,getView可以返回Header、Footer及Adapter
    // 中的视图,但其getViewTypeCount的实现只是调用了内部Adapter的的getViewTypeCount,忽略了Header、Footer中的View
    // Type,不懂。
    int getViewTypeCount();  

    //是否为空
    boolean isEmpty();
}  

转自:http://blog.csdn.net/lonelyroamer/article/details/7525834

时间: 2024-12-20 18:24:18

Android中的Adapter总结的相关文章

Android学习四、Android中的Adapter

一.Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set. 一个Adapter是Ad

Android中各种Adapter的使用方法

1.概念 Adapter是连接后端数据和前端显示的适配器接口.是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都须要用到Adapter.例如以下图直观的表达了Data.Adapter.View三者的关系: Android中全部的Adapter一览: 由图能够看到在Android中与Adapter有关的全部接口.类的完整层级图. 在我们使用过程中能够依据自己的需求实现接口或者继承类进行一定的扩展.比較经常使用的有 BaseAdapter,Si

Android中各种Adapter的用法

1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直观的表达了Data.Adapter.View三者的关系: Android中所有的Adapter一览: 由图可以看到在Android中与Adapter有关的所有接口.类的完整层级图.在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展.比较常用的有 BaseAdapter,SimpleA

Android笔记(二十一) Android中的Adapter

Android中有一些View是包含多个元素的,例如ListView,GridView等,为了给View的每一个元素都设置数据,就需要Adapter了. 常用的Adapter包括ArrayAdapter和SimpleAdapter. ArrayAdapter ArrayAdapter比较简单,它只能用于显示文字.看代码: MainActivity.java package cn.lixyz.listviewtest; import android.content.Intent; import a

android中与Adapter相关的控件----Spinner&AutoCompleteTextView

Spinner(列表选项框) & AutoCompleteTextView(自动完成文本框) 一.列表选项框核心属性 android:dropDownHorizontalOffset设置列表框的水平偏移距离 android:dropDownVerticalOffset设置列表框的水平竖直距离 android:dropDownSelector设置列表被选中时背景 android:dropDownWidth设置下拉列表框的宽度 android:gravity设置里面组件的对其方式 android:p

Android中适配器Adapter的使用

安卓中最常使用的适配器Adapter有三种:1.ArrayAdapter 2.SimpleAdapter 3.BaseAdpter,此处我们用代码结合图文的方式理解.     首先需要在起始布局activity_main.xml文件中设置三个Button按钮,并分别设置点击事件,并与MainActivity相结合     一:ArrayAdapter:简单易用的Adapter,通常用于将数组或者List集合的多个值包装成多个列表项. 1.声明arrayadapter的第一步:创建activity

Android 中 ListView Adapter getView 被多次调用问题 解决方法

执行多次原因是因为每显示一个VIew,它都去测量view的高度,执行measure方法,导致getView执行多次. 解决方法是将 ListView 的 layout_width 设置为 fill_parent, <ListView android:id="@+id/lv_messages" android:layout_width="fill_parent" android:layout_height="fill_parent" andr

Android中的设计模式-适配器模式

适配器模式 从名字上就可以看出适配器是为了针对接口不匹配的情况,而做出的兼容方法, 假设我们有一个已经存在的类Adaptee,其中有一些已经存在并实现好的方法methodA.但是客户不希望调用这个类,而是希望调用一个特定的接口例如Target接口. 于是如果想要调用Adaptee.methodA()方法,创建一个Adapter类实现客户要求的Target接口,Target接口中假设客户希望调用callMethodA()方法来实现Adaptee.methodA()方法功能.能够想到的就是以下两种方

【转】Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)

原文网址:http://embed.21ic.com/software/android/201403/31603.html 1 :Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) . 今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现) (一):使用ArrayAdapter进行适配数据: ①:首先定义一个布局文件: android: