Android的adapter总结和深入研究

Adapter是把数据和用户界面视图绑定的桥梁类。Adapter负责创建用来表示父视图中的每一个条目的子视图,并且提供对底层数据的访问。
支持Adapter绑定的用户界面必须对AdapterView抽象类进行拓展。也可以创建新的由AdapterView派生的控件,创建新的Adapter类绑定他们。

两个最通用的本地Adapter
ArrayAdapter ArrayAdapter使用泛型来把Adapter视图(View)绑定到一个指定类的对象的数组。默认情况下,ArrayAdapter使用数组中每个对象的toString值来创建和填充文本视图。

SimpleCursorAdapter SimpleCursorAdapter可以把一个布局中指定的视图和内容提供器查询返回的游标列绑定在一起。
定制ArrayAdapter
默认情况下,ArrayAdapter将使用它绑定到的对象数组的toString值来填充指定布局中可用的TextView
最常见的例子便是ListView
我们在定义一个ListView组件后,在向ListView组件装载数据之前需要创建一个Adapter对象,

ArrayAdapter<String> AdapterName = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_itme_1,
data);
以上代码中创建了一个android.wedget.ArrayAdapter 对象。ArrayAdapter类的构造方法需要一个android.content.Context对象,因此传入当前Activity的对象实例(this)作为ArrayAdapter类的构造方法的第一个参数值。除此之外,ArrayAdapter还需要完成:
指定列表项模板(第二个参数)
指定列表项中的数据。(第三个参数)
在创建玩Adapter对象后,调用setAdapter方法,ListView组件的每一个列表都会使用simple_list_item_1.xml文件定义的模板来显示,并将data数组中的每一个元素复制给每一个列表项

下面我们来讨论下定制ArrayAdapter
在大多数情况下,我们都要定制用于表示每个视图的布局。所以,需要使用特定类型的变体Adapter来扩展ArrayAdapter,并重写getView方法来向布局视图分配对象属性。
getView方法用于构造,扩充和填充将在父AdapterView类(如ListView)中显示的视图,该父AdapterView类使用这个Adapter绑定到底层的数组。
getView方法接收描述要显示的条目的位置,要更新的视图(或null),以及将包含这个视图的视图组作为参数。调用getItem将返回存储在底层数组的指定索引位置的值。
例如对与ListView来说:
自定义的Adapter类一般需要从android.widget.BaseAdapter类继承。在BaseAdapter类中有两个重要方法:getView和getCount。其中ListView在显示某一列表项是会调用getView方法返回要显示的列表项的View对象,这一点我们上面已经提到了。getCount方法返回当前ListView组件中列表项的总数。
注意:列表项的View对象一定要在getView方法中创建。不能事先创建好View对象,然后再getView方法中返回这些View对象。如果这样做,系统可能会出现一些异常现象

更多相关文章

  1. Fedora17 64位 android "failed to create the SD card" 解决方
  2. android获取控件宽和高
  3. Android事件和监听器详细的介绍
  4. Android中自定义数据适配器Adapter
  5. android 4.2.2提示 unauthorized终极解决办法,很粗暴
  6. Android(安卓)ADB超简单的安装方法
  7. Android(安卓)UI开发详解之Fragment
  8. Android(安卓)开发之多线程处理、Handler 详解
  9. [置顶] Android(安卓)AsyncTask源码解析

随机推荐

  1. Kotlin Android(安卓)Studio入门学习研究
  2. android中常见的错误及解决办法
  3. Android(安卓)Notification通知栏、点击
  4. android 实现高德2D地图,定位和定位蓝点
  5. Android/Linux 内存监视
  6. Android(安卓)ImageView图片自适应
  7. android studio运行时报错AVD Nexus_5X_A
  8. 【笔记】Android高版本Apache HTTPClient
  9. Delphi处理Android的路径信息
  10. 查看移动App排名和推荐的网站分享