快速开发Adapter(源码)

先来看目前按照普通方法实现adapter会遇到的问题:

1  adapter似乎要处理太多东西,如一个List数据,还要实现BaseAdapter继承下来的getCount、getItem、getItemId等方法。

2  setOnItemClickListener似乎使得代码看上去比较不完善,能否直接点击的回掉方法的参数就是所关心的数据。

3  普通实现的ViewHolder似乎要写很多代码,要写ViewHolder类等等。


针对上面问题可以做如下处理:

1  adapter其实可以抽象出一个类来,负责处理List数据的相关逻辑,只需将List里面的数据做泛型处理,如例子程序中的ACCBaseAdapter实现(代码截图1)。

2  针对问题2的setOnItemClickListener的问题其实也通过我们自己写一个点击监听事件来回掉解决,如ACCBaseAdapter中的onItemClickListener成员的实现。

3  针对问题3的ViewHolder,这里借用网上实现得较好的接口,即通过SparseArray的get的方式代替findViewById这个耗内存的方式。


代码截图:

1  通过泛型的方式,将一些通用的逻辑和数据实现在一个抽象基类中。


2  通过自己实现点击事件来人性化setOnItemClickListener:

  1)基础adapter中进行相关事件处理:


   2 )listView只需这样设置listener:


  

3  通过用一个较好的接口,完全抛弃ViewHolder那大堆代码(此接口放在基础adapter类中),最后达到的效果是,一个adapter实现只需这样:



具体的项目源码:
https://github.com/AfirSraftGarrier/TickFastAdapter


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值