Android中BaseAdapter使用基础点

Android中要填充一些控件(如ListView)经常需要用到Adapter来实现,常用的有ArrayAdapter,SimpleAdapter,
CursorAdapter,BaseAdapter,前几个都是继承自BaseAdapter的。我平时常用的就是ArrayAdapter,再就是
BaseAdapter了,SimpleAdapter本身其实也不算简单,所以能用SimpleAdapter的时候我一般都用了BaseAdapter。
至于CuesorAdapter我就几乎没用过。今天其实是有点忘了BaseAdapter怎么用了,在这记一下,以备后用,
也就主要是讲需要注意的东西。

1.BaseAdapter一般来说都是要重写构造方法的。

其实BaseAdapter整体而言还是比较好使用的,主要就实现四个抽象方法。但是当时突然想不起来怎么把数据传递过去了,自然就想到了构造方法,看了以前的代码,知道了。所以这里就有个结论:要用BaseAdapter就要重写构造方法。

2 .BaseAdapter中要有Context对像。

因为BaseAdapter要填充自己写的View,所以就要用到一个LayoutInflater对象,而要获得LayoutInflater对象就需要用到LayoutInflater.from(context);方法。所以由此看来,又要记住一个小结论:要使用BaseAdapter就要定义一个Context。要用到这个Context对象,还是要传递了,那么进而再得到一个结论:要使用BaseAdapter要在构造方法中至少传入一个Context对象参数。

3 .要使用ViewHolder类,里面包含自定义布局里的控件。

我们知道ListView之类的需要优化,不然的话一直填充比较占内存,极端的时候可能发生内存不足的情况导致程序FC,所以就自定一个内部类ViewHolder来进行优化。所以我们再次得到一个结论:要使用BaseAdapter就自定义一个ViewHolder类;用到的时候就实例化一个ViewHolder对象,
当convertView== null时,通过convertView = inflater.inflate(R.layout.list_item, null);初始化布局,然后初始化布局中的控件,之后调用

convertView.setTag(viewHolder);
else{
     viewHolder= (ViewHolder) convertView.getTag();
 }

就是重新获得组件,而不是重新初始化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值