ExpandListView 多个ItemView的效率优化

最近在项目遇到一个问题,就是在ExpandListView中有多个ItemView和groupView  每次都需要初始化,这个效率只能呵呵了!思路是如此出发的!

以前我们使用在一个Listview只有单个itemView优化如下!

	FitListViewHolder viewHolder;
		if (convertView == null) {
			convertView = LayoutInflater.from(context).inflate(
					R.layout.fitlistitem, null);
			viewHolder = new FitListViewHolder(convertView, context);
			convertView.setTag(viewHolder);
		} else {
			viewHolder = (FitListViewHolder) convertView.getTag();
		}

		// 装载数据
		viewHolder.setContent(yiLists.get(position));

大部分人应该都是这么处理的,我也是这样处理的!

一次类推如果为多个责直接扩展为:

 if (symptomResultType == SymptomResultType.SYMPTOM_TYPE_COMMON_METHOD) {
            CommonMethodViewHolder viewHolder;
            if(convertView == null || !(convertView.getTag() instanceof CommonMethodViewHolder)) {
                convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item_common_method, null);
                viewHolder = new CommonMethodViewHolder(convertView, mContext);
                convertView.setTag(viewHolder);
            }else{
                viewHolder = (CommonMethodViewHolder) convertView.getTag();
            }
            Object[] userMethods = userSymptomResultModel.userMethodDatas.toArray();
            viewHolder.setMethodContent((UserMethod) userMethods[childPosition]);
            return convertView;
        } else if (symptomResultType == SymptomResultType.SYMPTOM_TYPE_HABIT) {
            UserHabitViewHolder viewHolder;
            if(convertView == null || !(convertView.getTag() instanceof UserHabitViewHolder)) {
                convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item_habit, null);
                viewHolder = new UserHabitViewHolder(convertView, mContext);
                convertView.setTag(viewHolder);
            }else{
                viewHolder = (UserHabitViewHolder) convertView.getTag();
            }
            Object[] userHabits = userSymptomResultModel.userHabitDatas.toArray();
            viewHolder.setHabitContent((UserHabit) userHabits[childPosition]);
            return convertView;
        }

中心思想就是根据contentView是否为空或者不为空的情况下获取gettag然后看看是否是当前item需要的View,如果不是责再去创建。根据tag去获取就OK了!

debug执行了我想要的结果!

欢迎大家拍砖!

时间: 2024-10-13 08:57:23

ExpandListView 多个ItemView的效率优化的相关文章

c++程序的效率优化初涉

能写出稳定高效的程序一直是程序员所追求的,今天就和大家一起探讨一下关于C++程序优化的几点看法. 由于C/C++语言的复杂性,致使C++编译器隐藏了层层幔布,我们不经意的一条语句都可能是编译器幕后几经周折的结果,在要求程序高效运行的环境下,每一条语句都会让我们慎之又慎,而程序优化又是个十分广泛的话题,包括程序架构设计的优化,语言本身的优化,编程技巧和策略等等,如此大的范围非我能力所及,这里谈的优化就是在实际开发中遇到的问题. 一.  举手之劳的小差别 既然说优化就一定要仔细,不放过任何微小的细节

(转)as3效率优化

1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了无用功,往往从这些方面就能找到那些导致性能低下的地方. 2.优化细节代码针对细节总是好的,有一些小技巧比如:用 var obj:Object = {}; 要比 var obj:Object = new Object();要好:var arr:Array = []; 要比 var arr:Array

对Listview控件的效率优化

不管在Android平台还是IOS平台,Listview或者是类似控件,在数据显示方面都占据着相当重要的位置.而作为最重要的数据展示形式,Listview控件或者是类似的需要使用Adapter的控件的加载以及数据展示的效率和优化,就被摆在了一个很重要的位置,本篇文章主要给大家介绍,如何可以实现Listview控件的效率优化. 1.重用已经生成过的Item View 我们都知道,Listview的数据显示,少不了Adapter的设计,所以优化在重点都在如何设计Adapter中.而BaseAdapt

游戏效率优化(2) 使用const关键字

游戏效率优化(2)使用const关键字 DionysosLai  2014-5-15 使用const有很多好处,比方保护被修饰的东西,防止意外修改,提高程序健壮性等作用.不过使用const 可以提高程序运行效率,却很少有人知道. 下面看几个例子,在看cocos2d源码时,我们经常会看到如下类似的代码: ccpAdd(const CCPoint& v1, const CCPoint& v2) { return v1 + v2; } ccpSub(const CCPoint& v1,

漫游Kafka设计篇之效率优化

原文地址:http://blog.csdn.net/honglei915/article/details/37564757 Kafka在提高效率方面做了很大努力.Kafka的一个主要使用场景是处理网站活动日志,吞吐量是非常大的,每个页面都会产生好多次写操作.读方面,假设每个消息只被消费一次,读的量的也是很大的,Kafka也尽量使读的操作更轻量化. 我们之前讨论了磁盘的性能问题,线性读写的情况下影响磁盘性能问题大约有两个方面:太多的琐碎的I/O操作和太多的字节拷贝.I/O问题发生在客户端和服务端之

php程序效率优化的一些策略小结

php程序效率优化的一些策略小结 1.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题; 2.尽量的少进行文件操作,虽然PHP的文件操作效率也不低的; 3.优化Select SQL语句,在可能的情况下尽量少的进行Insert.Update操作(在update上,我被恶批过); 4.尽可能的使

jquery选择器效率优化问题

jquery选择器效率优化问题   jquery选择器固然强大,但是使用不当回导致效率问题: 1.要养成将jQuery对象缓存进变量的习惯 //不好的写法 $('#btn').bind("click",function() {}); $('#btn').css("border","1px solid red"); $("#btn").css("background-color","green&qu

(同事的原创)关于效率优化的一点工作心得

文是单位同事胡计平的一个关于效率优化的总结,内容很实用,转贴到blog里,以备自己日后查看,也希望能对更多的人有所帮助 最近写一程序,跟效率优化打上了交道,把其中的体会写下来,供大家讨论分享,我想效率优化工作可以分为如下几个步骤: (1)查找影响效率的瓶颈之处:定位的方法当然是使用时间函数,一般精确的使用GetTickCount就可以,非常精确的使用 function GetCycleCount: Int64;asm  RDTSC;    //得到当前CPU的时钟周期数.end; 想必这个知识大

Sql Server随机抽取数据效率优化

Sql Server随机抽取数据效率优化2013-05-11 1 个评论 作者:菜光收藏 我要投稿Sql Server随机抽取数据效率优化 山人我最近遇到一件很纠结的事情,就是如何快速的从数据表里随机抽取一条数据. 我生成了一个简单的数据表,并且导入了500W条数据进行测试. 下图为第一次采用的SQL语句: Declare @d DatetimeSet @d=getdate()SELECT top 1[ActivityID] ,[CardNo] ,[Password] ,[State] ,[Cr