在android中,经常使用到ListView,通常我都会基础BaseAdapter,然后重写几个方法,以下是其中一个方法。
在该方法中有个View对象convertView,是旧的、曾经在ListView中显示过的View对象,他可以重用,减少view对象的创建,毕竟inflate填充也是消耗时间的操作。
以下,判断convertView是否为空,如果为空则表示没有View对象在ListView中显示过,如果不为空,则复用以前的View对象,降低时间消耗。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
AppInfo info = infos.get(position);
View view = null;
if(convertView != null){
view = convertView;
Log.i(TAG, "使用历史缓存");
}else{
Log.i(TAG, "填充");
view = View.inflate(context, R.layout.app_main_item, null);
}
iv = (ImageView) view.findViewById(R.id.iv_app_icon);
tv = (TextView) view.findViewById(R.id.tv_app_name);
iv.setImageDrawable(info.getIcon());
tv.setText(info.getAppName());
return view;
}