Android BaseAadapter适配器

本文介绍了BaseAdapter的基础用法及优化技巧,包括ListView缓存机制的利用和ViewHolder模式的应用,帮助初学者理解如何为列表项设置事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近和室友一起想弄一个带饭的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

资源链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值