43、gridview或者listview的adapter优化
1、在getview时,如果是一个textview,那么不用每次都new一个或者inflater直接返回,可以先判断convertview是否为空,如果为空则new或者inflate,否则直接返回convertview
2、如果adapter数量太多,假设需要显示1000个数据,那么如果在getview时每次都是对inflate,那么是一种对资源的浪费,且卡顿现象严重,此时可以通过结合viewHolder提高效率
举例:
1、adapter的getview方法
@Override
public View getView( int pos, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub ViewHolderPushHistory holder;
final int position = pos; if(convertView == null)
{ CommonUtils.LogWuwei(tag, "pushHistoryAdapter getView position is "+pos); LayoutInflater inflater = (LayoutInflater)ctxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE); holder = new ViewHolderPushHistory(); convertView = inflater.inflate(R.layout.gridview_history_item, null); holder.tv_serinal_num = (TextView)convertView.findViewById(R.id.textview_grdiview_history_item_serinal_num); holder.tv_whether_packaged = (TextView)convertView.findViewById(R.id.textview_grdiview_history_item_whether_packaged); holder.buttonContent = (TextView)convertView.findViewById(R.id.button_gridview_history_item_order_content); holder.buttonTime = (TextView)convertView.findViewById(R.id.textview_grdiview_history_item_time); convertView.setTag(holder);
}
else
{
holder = (ViewHolderPushHistory)convertView.getTag();
} holder.tv_serinal_num.setText(serinal_num); holder.buttonContent.setText("鱼香肉丝"); holder.tv_whether_packaged.setText("打包"); holder.buttonTime.setText(“2:12”); return convertView; }
2、定义一个存储信息的类
package com.shanfubaoAndroid.kitchenMealDone;
import android.widget.TextView;
public class ViewHolderPushHistory {
public TextView tv_serinal_num;
public TextView tv_whether_packaged ;
public TextView buttonContent ;
public TextView buttonTime ;
}
43、gridview或者listview的adapter优化的更多相关文章
- RecyclerView.Adapter优化了吗?
昨天写了一篇「还在用ListView?」讲的内容是RecyclerView的使用技巧以及一些经常使用的开源库.有朋友反馈"我已经在用recyclerview了",那么怎样让它更好用 ...
- Android零基础入门第43节:ListView优化和列表首尾使用
原文:Android零基础入门第43节:ListView优化和列表首尾使用 前面连续几期都在学习ListView的各种使用方法,如果细心的同学可能会发现其运行效率是有待提高的,那么本期就来一起学习有哪 ...
- ListView适配器Adapter介绍与优化
一.ListView与Adapter的关系 ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组成: 1.View ...
- 43.Android之ListView中BaseAdapter学习
实际开发中个人觉得用的比较多是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView.GridView.Gallery.Spinner ...
- ListView和Adapter数据适配器的简单介绍
ListView 显示大量相同格式数据 常用属性: listSelector listView每项在选中.按下等不同状态时的Drawable divider ...
- Android listview与adapter用法
listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...
- ListView 和 Adapter用法
一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常 ...
- 转-ListView的性能优化之convertView和viewHolder
ListView的性能优化之convertView和viewHolder 2014-05-14 参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/ ...
- GridView 和ListView中自适应高度
android中GridView 和ListView放在scrollView中时会默认的只有一行高这时就要我们自己计算出它的高度啦 首先是listview的 //动态设置listview的高度 pu ...
随机推荐
- 飞塔NGFW-FortiGate-5.2(BYOL)
平台: FortiGate 类型: 虚拟机镜像 软件包: basic software FortiGate ips security UTM vpn 反垃圾邮件 网页过滤 服务优惠价: 按服务商许可协 ...
- 删除elasticsearch大于7天前的索引
curl -u 用户名:密码 -H'Content-Type:application/json' -d'{ "query": { "range": { &quo ...
- pta 编程题13 File Transfer
其它pta数据结构编程题请参见:pta 这道题考察的是union-find并查集. 开始把数组中每个元素初始化为-1,代表没有父节点.为了使树更加平衡,可以让每一个连通分量的树根的负值代表这个连通分量 ...
- js 中//<![CDATA[ 意义
CDATA内部所有东西都会被解析器忽略,加入文本中包含了大量< 和 $符号,就像编程中经常出现的情况一样,那么这个元素就可以被定义为一个CDATA部分 ,CDATA 区段开始于 "&l ...
- 工作流性能优化(敢问activiti有扩展性?)(2)
2015/4/17 粗略看了activiti的sql的,在ativity engine包里边: 没什么头绪,先用excel记录数据量少的时候本机的性能情况: 不打印hibernate的sql:一刷 ...
- IOS UIImageView的帧动画
● UIImageView可以让一系列的图片在特定的时间内按顺序显示 ● 相关属性解析: ● animationImages:要显示的图片(一个装着UIImage的NSArray) ● animati ...
- Codeforces Round #327 (Div. 2) C Median Smoothing(找规律)
分析: 三个01组合只有八种情况: 000 s001 s010 0011 s100 s101 1110 s111 s 可以看出只有010,101是不稳定的.其他都是稳定的,且连续地出现了1或0,标记为 ...
- POJ 1065 Wooden Sticks(LIS,最少链划分)
题意:求二维偏序的最少链划分. 用到Dilworth定理:最少链划分=最长反链.(对偶也成立,个人认为区别只是一个维度上的两个方向,写了个简单的证明 相关概念:偏序集,链,反链等等概念可以参考这里:h ...
- 2018.6.5 Oracle plsql编程 游标的使用
--3.查询10部门所有员工的姓名.(ref游标实现) 动态游标 declare --创建一种游标类型 type type_cursor is ref cursor; --声明变量指定游标类型 v_c ...
- linux用命令行运行matlab的.mat文件
入m文件所在目录后,运行 $ matlab -nodesktop -nosplash -r matlabfile 只用文件名matlabfile,不能添加.m