android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化
数据适配器——BaseAdapter
可以自定义View或者利用参数中的convertView
一、逗比式
没有任何优化处理,每次都创建新的View,设置控件,效率极其低下
``` @Override
public View getView(int position, View convertView, ViewGroup parent) {
//逗比式(没有利用到ListView的缓存机制)//
View view = mInflater.inflate(R.layout.item,null);//装载到item中的布局文件
ImageView imageView = (ImageView) view.findViewById(R.id.iv_image);
TextView title = (TextView) view.findViewById(R.id.iv_title);
TextView content = (TextView) view.findViewById(R.id.iv_content);
ItemBean bean = mList.get(position);
imageView.setImageResource(bean.ItemImage);
title.setText(bean.ItemTitle);
content.setText(bean.ItemContent);
return view;
//逗比式//
}
二、普通式
-----
利用了ListView的缓存特性,如果没有缓存才创建新的View。算入门,但是findViewById依然会浪费大量时间
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//普通式
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item, null);
}
ImageView imageView = (ImageView) convertView.findViewById(R.id.iv_image);
TextView title = (TextView) convertView.findViewById(R.id.iv_title);
TextView content = (TextView) convertView.findViewById(R.id.iv_content);
ItemBean bean = mList.get(position);
imageView.setImageResource(bean.ItemImage);
title.setText(bean.ItemTitle);
content.setText(bean.ItemContent);
return content;
//普通式
三、文艺式
-----
不仅利用了ListView的缓存,更通过ViewHolder类来实现显示数据的视图的缓存,避免多次通过findViewById寻找控件(这是最号的写法)
1>创建内部类ViewHolder
2>判断convertView是否为空
3>通过setTag将ViewHolder与convertView绑定
//文艺式///
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = mInflater.inflate(R.layout.item, null);
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.iv_image);
viewHolder.title = (TextView) convertView.findViewById(R.id.iv_title);
viewHolder.content = (TextView) convertView.findViewById(R.id.iv_content);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)convertView.getTag();
}
ItemBean bean = mList.get(position);
viewHolder.imageView.setImageResource(bean.ItemImage);
viewHolder.title.setText(bean.ItemTitle);
viewHolder.content.setText(bean.ItemContent);
return convertView;
//文艺式///
}
class ViewHolder {
public ImageView imageView;
public TextView title;
public TextView content;
}
android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化相关推荐
- Android自定义Adapter的ListView的思路及代码
Android自定义Adapter的ListView的思路及代码,需要的朋友可以参考一下 width="650" height="200" align=&quo ...
- android自定义adapter(实现对按钮的监听)
我们一般需要自定义adapter 这里就需要继承BaseAdapter adapter在MVC开发模式中,是控制层 baseAdapter 继承这个方法必须重写 四个方法 1. getcont ...
- Android 自定义Adapter以实现自定义填充ListView的Item
1>实体类---即ListView中各个Item中填充的内容 package com.demo.cxc.compoundview.com.demo.cxc.entity;import java. ...
- android 自定义adapter
Adapter是用来帮助填充数据的中间桥梁,比如通过它将数据填充到ListView, GridView, Gallery等,而android的adapter又有很多种(ArrayAdapter, Ba ...
- android 自定义view局部刷新,Android 优化之局部刷新
RecyclerView 局部刷新 相信现在已经很少人不用 RecyclerView 了,如果只有一个 item 的数据源改变的时候,大家都会用 notifyItemChanged(int posit ...
- android listview自定义顶部,Android自定义Adapter的ListView的思路及代码
在开发中,我们经常使用到ListView这个控件.Android的API也提供了许多创建ListView适配器的快捷方式.例如ArrayAdapter.SimpleAdapter和SimpleCurs ...
- Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能
本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...
- android 自定义view 硬件加速,Android自定义View(八) -- 硬件加速
Android自定义View(八) – 硬件加速 今天学习自定义View部分的最有一篇:硬件加速因为无法录制GIF,所以本篇内容基本为原博 本文计划根据HenCoder系列文章进行学习,所以代码风格及 ...
- android自定义下拉筛选,android自定义Spinner下拉菜单(下拉列表框)样式
在Android中Spinner就是下拉菜单,它相当于HTML中的标签. Android中提供的Spinner Widget下拉菜单已经非常好用了,样式也适用, 不过我们还是可以通过定义xml的方式来 ...
最新文章
- 应该知道的自动化测试陷阱2
- RxSwift 系列(一)
- WampServer的配置
- c 语言输入n个数求和,c++---天梯赛---N个数求和
- 冒着得罪大佬的风险,曝光下这件事
- Jmeter接口测试实例图文示例
- Sonic-UI自动化用例编写教程与建议
- java冷门小功能代码收集
- godaddy无法修改域名服务器,godaddy的DNS A记录不能修改原因
- 彻底带你入门RDS数据库「玩转华为云」
- 维特智能IMU 接入ROS发布IMU数据类型话题
- 深度学习 (一)计算机如何处理和识别图片揭秘
- 【收藏】2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
- mysql查询历史执行sql记录
- BUUCTF 打卡8
- spring整合jdbc配置文件
- HTTP请求方法之options请求
- vpd安全策略的使用
- 电脑无法识别(读取)U盘
- 搞算法的都很强?不一定!你见过最差的算法工程师什么样?
热门文章
- mysql主辅同步报错_mysql数据库主辅同步Slave_IO_Running,Slave_SQL_Running错误
- was 程序jvm_【保家护行航】WAS知识学习分享
- 货物与产品的区别_超市货架和仓储式货架有什么区别?
- 同花顺如何切换k线_K线之形态学:浅谈纸白银产品该如何去做好交易?
- 推荐系统图算法实用干货汇总(含论文、代码、样例教程)
- Spring Cloud实战小贴士:Zuul统一异常处理(一)
- YUI事件体系之Y.Do
- Category 特性在 iOS 组件化中的应用与管控
- selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’解决
- tensorflow4 代价函数、dropout、优化器