博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
43、gridview或者listview的adapter优化
阅读量:6158 次
发布时间:2019-06-21

本文共 2374 字,大约阅读时间需要 7 分钟。

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、定义一个存储信息的类

1 package com.shanfubaoAndroid.kitchenMealDone; 2  3  4 import android.widget.TextView; 5  6 public class ViewHolderPushHistory { 7      8      9     public TextView tv_serinal_num;10     11     public TextView tv_whether_packaged ;12     13     public TextView buttonContent ;14     15     public TextView buttonTime ;16     17 18 }

 

转载于:https://www.cnblogs.com/kunyashaw/p/4633890.html

你可能感兴趣的文章
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>
活在当下
查看>>
每天进步一点----- MediaPlayer
查看>>
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>
android apk 逆向中常用工具一览
查看>>
MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
查看>>
Skip List——跳表,一个高效的索引技术
查看>>
Yii2单元测试初探
查看>>
五、字典
查看>>
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>