ListView之BaseAdapter的基本使用_A870251703的博客-程序员宅基地

技术标签: Android  

当SimpleAdapter和ArrayAdapter不能满足我们的需求时,我们就需要通过继承BaseAdapter来创建我们自定义的适配器


(1)BaseAdapter的基本结构(方法):

— getCount():适配器数据集中数据个数

— getItem(int position):从数据集中获取指定位置的数据项

— getItemId(int position):获取指定项对应的ID

— View getView(int , View , ViewGroup): 获取每一个Item的显示内容



(2)步骤

1.准备好ListView的布局文件以及需要显示的Item的布局文件

2.创建一个类来封装我们Item中的内容,并在构造器中初始化,形成一一对应

3.创建适配器:

— 创建需要的变量以及LayoutInflater

— 构造方法(传进数据源和上下文)—— 通过Context来对LayoutInflater初始化

— 实现具体方法

— getView方法:

(1)创建内部类ViewHolder:定义成员变量来Item布局中的控件

(2)判断convertView是否为空

(3)通过setTag将ViewHolder与convertView绑定


 


(4)当不为空,通过getTag方法获取ViewHolder对象




(5)这样就可以利用好ListView的缓存机制以及减少用findViewById()的次数,提高效率。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/A870251703/article/details/77446471

智能推荐

homebrew配置国内加速源_homebrew.bintray.com-程序员宅基地

我想给mac装软件,发现默认的源是https://homebrew.bintray.com,这个呢有时候比较慢。怎么解决这个问题呢,就是更改 Homebrew 的安装源,换成国内的源,国内源的有很多,最常见的就是中科大的。1.替换brew.gitcd "$(brew --repo)"git remote set-url origin https://mirrors.ustc.edu.cn/brew.git如下图:2.替换 homebrew-core.gitcd "$(br._homebrew.bintray.com

打开Dreamweaver在onLoad运行Design Notes_onOpen.htm时发生了javascript脚本错误的解决方法_在onload运行时发生错误怎么办_snail-蜗牛的博客-程序员宅基地

困扰已久的Dreamweaver在onLoad运行Design Notes_onOpen.htm时发生了javascript脚本错误的完美解决方法。  以前在做网站开发要用到 Dreamweaver时,经常会遇到 在onLoad运行Design Notes_onOpen.htm时发生了javascript脚本错误 ,很多时候我们以为是Dreamweaver 软件出问题了,一般都会选择重新安_在onload运行时发生错误怎么办

BZOJ 4753(树形dp+分数规划)_yjt9299的博客-程序员宅基地

4753: [Jsoi2016]最佳团体Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1423 Solved: 517[Submit][Status][Discuss]DescriptionJSOI信息学代表队一共有N名候选人,这些候选人从1到N编号。方便起见,JYY的编号是0号。每个候选人都由一位编号比他小的候选人Ri推荐。...

头歌Educoder云计算与大数据——实验五 Java API分布式存储_csdn头歌分布式存储系统_36.6°的博客-程序员宅基地

实验五 Java API分布式存储1. 利用shell把电商数据上传到HDFS任务描述相关知识HDFS shell常见命令编程要求测试说明代码实现第2关:利用Java API把电商数据上传到HDFS任务描述相关知识常用 HDFS Java接口的使用编程要求测试说明代码实现1. 利用shell把电商数据上传到HDFS任务描述原始电商数据都是存储在关系型数据库或 NoSQL 数据库上的,是面向OLTP(联机事务处理过程)的;数据都是面向业务的,而不是面向分析。因此数据比较复杂,表很多关联的数据是分散的,不_csdn头歌分布式存储系统

php实现AES的加密解密_知其黑、受其白的博客-程序员宅基地

在php中我们使用openssl_encrypt来实现加密和使用openssl_decrypt实现解密一:openssl_encrypt方法详解:openssl_encrypt($data, $method, $key, $options = 0, $iv = "", &$tag = NULL, $aad = "", $tag_length = 16)参数:1.$data:加密明文2.$method:加密方法: 可以通过openssl_get_cipher_methods()获取有哪些加

随便推点

CVPR2020:点云分类的自动放大框架:PointAugment_3D视觉工坊的博客-程序员宅基地

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达作者:吴建明wujianning | 来源:知乎https://zhuanlan.zhihu.com/p/153041778本文仅做..._pointaugment

ubuntu下获得root权限及退出root权限_ubunto中退出root_米饭的白色的博客-程序员宅基地

Ubuntu 默认不再用su 或者sudo root的方法进入超级。但是可以使用sudo -i获取超级权限。当然,也采用sudo passwd修改密码就可以了。我还是习惯sudo -i退出root权限:ctrl D_ubunto中退出root

PHP根据中心经纬度和半径画圆圈得出的最大最小经纬度_php 根据经纬度和半径画一个圆_longzai89757的博客-程序员宅基地

/** * 根据中心经纬度和半径画圆圈得出的最大最小经纬度 *@paramlon 经度 *@paramlat 纬度 *@paramraidus 半径距离单位米 */ public functiongetAround($lon,$lat,$raidus){ $pai = 3.14159265_php 根据经纬度和半径画一个圆

Android - 获取版本号、判断当前是否为debug模式,判断当前应用是否在前台/后台运行_一般情况下,在android系统中,可以通过以下哪个文件内容,来判断当前进程是否处于调_mythmayor的博客-程序员宅基地

转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72731390一、获取版本号/** * 获取版本号 * * @param context 上下文 * @return 当前应用的版本号,获取失败返回空串 */ public static String getVersion(Context context) { ..._一般情况下,在android系统中,可以通过以下哪个文件内容,来判断当前进程是否处于调

安卓onInterceptTouchEvent和onTouchEvent详解_zuyuanyuan92的博客-程序员宅基地

最近在做一个滑动手机切换activity的效果,网上代码里几乎都有onInterceptTouchEvent和onTouchEvent这两个重载方法。以前在自定义view里经常用到,但是没有仔细理解过,因为没出过什么问题。今天在搞的时候觉得晕乎乎的,恩,很有必要仔细仔细理解一下这两个方法了一下是我搜索很一会,发现一篇讲得非常明白的博文:老实说,这两个小东东实在是太麻烦了,很不好懂,_onintercepttouchevent

mac解决最新vue-tools的npm run build一直失败问题!最新!mac!不坑你!_砖业洋__的博客-程序员宅基地

转载请注明~网上的教程全都是windows,旧版的,一个能用的都没有,我去https://github.com/vuejs/vue-devtools克隆下来但是按照网上的教程一直失败,失败如下图npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! [email protected] build: `cd packages/shell-chr...

推荐文章

热门文章

相关标签