Android BaseAadapter适配器

来源:互联网 发布:易投水利造价软件 编辑:程序博客网 时间:2024/09/21 08:18

前言

最近和室友一起想弄一个带饭的app,在局域网内有数据库交互的那种平台软件,当然做一定会很简陋功能不全,但仅仅是尝试。带饭的界面上应该有个ListView,里面显示各种饭的信息,然后点击可以看到详细信息,像美团那种,关于这个我就不知道怎么弄了,用前一篇日志的两种简单适配器好像无法做到自动给每个item设置事件,于是学习了一下BaseAdapter。现在我依然没有实现设置事件,但学习了三种BaseAdapter写法,作为记录和分享。


BaseAdapter与其他简单适配器有什么区别?

其实其他的几个简单适配器,如ArrayAdapter,SimpleAdapter,都是继承自BaseAdapter,这里我不是直接用BaseAdapter,而是去继承BaseAdapter然后重写方法。


BaseAdapter简单方法

1.先创建布局文件。布局文件做两个,一个是普通界面,里面有一个listview并设置一个id,另一个界面是item界面,是具体每个条目界面,这里我的item左边一张图片,右边2个TextView。
2.写一个Itembean的Java文件,保存item的数据
3.写安卓的Activity文件,这个文件里添加item个数和数据
4.重写BaseAdapter.先定义一个私有的动态数组,接收数据源。小幅改动自动生成的4个函数,核心在于完成 getView这个方法,实际就是找到id然后显示出来
详细的情况,我会发在csdn资源里用作保存


BaseAdapter进阶方法

把一般方法每次都找界面改成了如下

if (convertView == null) {            convertView = mInflater.inflate(R.layout.item, null);}

目的好像是如果界面缓存了,就不会在生成,就是利用了ListView缓存机制,提升了性能。


BaseAdapter优化方法

使用了ViewHolder。
创建内部类ViewHolder,对应布局内控件属性通过setTag将ViewHolder与convertView绑定
getTag()取出关联的ViewHolder
通过ViewHolder对象找到对应控件
通过ViewHolder类实现显示数据的视图的缓存,目的避免多次通过findViewById找id

资源链接:

0 0
原创粉丝点击