常见Adapter

本文来自

柠檬的博客

http://blog.sina.com.cn/demonzym


从google的demo开始,第一个NoteList开始就出现了Adapter、List,而观察常见的一些android应用,跟adapter相关的界面也经常出现,所以觉得,不好好学习一下,以后是会带来诸多麻烦的。
      Adapter在Android开发中占据着非常重要的地位,它是data和ui之间的一个关键,如图所示
Android常用Adapter的学习总结
      这个图片来自GoogleI/O,非常形象的表明了adapter在程序中扮演什么样的角色。
   
   先看下Adapter的层次。 
      Android常用Adapter的学习总结

一、  Adapter是在android.widget中的一个顶层接口,下面有诸多不同的Adapter实现这个接口来达到不同的目的。
      ListAdapter绑定了Data和ListView。SpinnerAdapter绑定了Data和Spinner,两个都是接口,需要实现。这两者以后的实现类,使用方法都是一样的,只是在绑定不同类型的view时显示的效果不同罢了。

其中最常用的有BaseAdapter,SimpleCursorAdapter和ArrayAdapter。
     
上图可以看到 BaseAdapter是抽象类
Android常用Adapter的学习总结所以需要实现好多的抽象方法,当然,也说明可控制性最强,可以自定义很多需要的东西。

二、SimpleCursorAdapter,可以用于纯文字的ListView,它必须使Cursor的字段和UI的界面元素id对应起来。非常的适合于数据库的数据提取,所以被广泛用于各种数据库相关界面。 Android常用Adapter的学习总结
public class simpleCursorAdapter extendsSimpleCursorAdapter{

public simpleCursorAdapter(Context context, int layout, Cursorc,
String[] from, int[] to) {
super(context, layout, c, from, to);
// TODO Auto-generated constructor stub
}
}

继承自SimpleCursorAdapter以后,要实现其构造函数,帮助文档是这样描述的
context       The contextwhere the ListView associated with this SimpleListItemFactory isrunning
layout       resourceidentifier of a layout file that defines the views for this listitem. The layout file should include at least those named viewsdefined in "to"
c             The database cursor. Can be null if thecursor is not available yet.
from         A list of column names representing thedata to bind to the UI. Can be null if the cursor is not availableyet.
to           The views thatshould display column in the "from" parameter. These should all beTextViews. The first N views in this list are given the values ofthe first N columns in the from parameter. Can be null if thecursor is not available yet.

context   与其关联的上下文
layout     listview或者spinnerview所在的layout
c         cursor
from       列名称所组成的string数组
to         与列名称,即数组元素所对应的界面元素,from与to要一一对应,不然结果无法正确显示

当然,SimpleCursorAdapter的列表界面也可以自定义。

三、ArrayAdapter
支持泛型操作 Android常用Adapter的学习总结

通常会需要实现getView方法,特殊情况下(结合数据的rowid),为了让ui时间相应处理方便点,最好重写getItemId。



有一个比较特殊的:

HeaderViewListAdapter

Adapter的层次图中可以看到,它 implements Filterable WrapperListAdapter

ListAdapterused when a ListView has header views. This ListAdapter wrapsanother one and also keeps track of the header views and theirassociated data objects.This is intended as a base class; you willprobably not need to use this class directly in your owncode.

即对list首行的特殊化处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值