ListView优化

1.利用ListView自身的缓存机制,他会缓存条目中的一个条目item,当listview第一屏显示完成之后,就会出现一个缓存条目,其实就是BaseAdapter里面的public View getView(int position, View convertView, ViewGroup parent)

2.减少findViewById()的次数,findViewById是一个相对比较耗性能的操作,因为这个操作每次都需要到布局中去查找文件。把item里面的控件封装成一个javaBean,当item条目被加载的时候就去找到对应的控件。

 @Override
146         public View getView(int position, View convertView, ViewGroup parent) {
147             // TODO Auto-generated method stub
148             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     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值