ListView优化
来源:互联网 发布:Ubuntu16安装Apache 编辑:程序博客网 时间:2024/04/28 23:32
1.利用ListView自身的缓存机制,他会缓存条目中的一个条目item,当listview第一屏显示完成之后,就会出现一个缓存条目,其实就是BaseAdapter里面的public View getView(int position, View convertView, ViewGroup parent)。
2.减少findViewById()的次数,findViewById是一个相对比较耗性能的操作,因为这个操作每次都需要到布局中去查找文件。把item里面的控件封装成一个javaBean,当item条目被加载的时候就去找到对应的控件。
@Override146 public View getView(int position, View convertView, ViewGroup parent) {147 // TODO Auto-generated method stub148 View view = null;149 ViewHolder holder = null;150 if (convertView != null) {151 view = convertView;152 holder = (ViewHolder) view.getTag();153 Log.i("i", " convertView != null 缓存不等于空 使用缓存");154 155 } else {156 Log.i("i", " convertView == null 缓存等于空");157 view = mInflater.inflate(R.layout.app_lock_manager_item, null);158 holder = new ViewHolder();159 holder.iv_appicon = (ImageView) view.findViewById(R.id.iv_appicon);160 holder.tv_appname = (TextView) view.findViewById(R.id.tv_appname);161 holder.iv_lock = (ImageView) view.findViewById(R.id.iv_lock);162 view.setTag(holder);163 }164 AppInfo appInfo = appInfos.get(position);165 166 ImageView iv_appicon = holder.iv_appicon;167 TextView tv_appname = holder.tv_appname;168 ImageView iv_lock = holder.iv_lock;169 170 iv_appicon.setImageDrawable(appInfo.getApp_icon());171 tv_appname.setText(appInfo.getApp_name());172 173 // boolean isLockApp = appLockDao.isLockApp(appInfo.getPackagename());174 boolean isLockApp = appLocks.contains(appInfo.getPackagename()); // 此功能优化后 不用每次查询数据库 直接将所有有锁的程序都放入集合中存储175 if(isLockApp){176 iv_lock.setImageResource(R.drawable.lock);177 }else{178 iv_lock.setImageResource(R.drawable.unlock);179 }180 181 return view;182 }183 184 }185 186 static class ViewHolder{187 ImageView iv_appicon;188 TextView tv_appname;189 ImageView iv_lock;190 }
0 0
- ListView优化
- listView优化
- ListView优化
- ListView优化
- ListView优化
- ListView优化
- listView优化
- listview 优化
- ListView优化
- listView优化
- ListView 优化
- ListVIew优化
- ListView优化
- ListView优化
- listview优化
- Listview 优化
- ListView优化
- ListView 优化
- Leetcode 细节实现 Length of Last Word
- xml sax localName和qName的区别
- C++ 排序
- PHP环境搭建:Ubuntu系统配置Apache+MySQL+PHP
- 正则表达式
- ListView优化
- C语言运算符优先级 详细列表
- 乱序执行技术
- 软件工程学习之初
- 注册绑定页面及微信二维码登陆页面开发项目总结
- MD5加密算法
- 剑指Offer之把数组排成最小的数
- java_最小的k个数
- strtod()