没有优化之前的getView
public View getView(int position,View convertView,ViewGroup parent){ Fruit fruit = getItem(position);//获取当前项的实例 convertView = LayoutInflater.from(getContext()).inflate(resourceId,parent,false); ImageView fruitImage = (ImageView) convertView.findViewById(R.id.fruit_image); TextView fruitName = (TextView) convertView.findViewById(R.id.fruit_name); fruitImage.setImageResource(fruit.getImageId); fruitName.setText(fruit.getName); } AI写代码 将convertView复用后的优化,减少布局文件加载。
public View getView(int position,View convertView,ViewGroup parent){
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
}
ImageView fruitImage = (ImageView) convertView.findViewById(R.id.fruit_image);
TextView fruitName = (TextView) convertView.findViewById(R.id.fruit_name);
Fruit fruit = getItem(position);//获取当前项的实例
fruitImage.setImageResource(fruit.getImageId);
fruitName.setText(fruit.getName);
}
AI写代码
用ViewHolder来管理布局文件,复用ViewHolder,减少findviewbyid每次来获取实例。
public View getView(int position,View convertView,ViewGroup parent){
Fruit fruit = getItem(position);//获取当前项的实例
ViewHolder viewHolder = null;
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
viewHolder = new ViewHolder();
viewHolder.fruitImage = (ImageView) convertView.findViewById(R.id.fruit_image);
viewHolder.fruitName = (TextView) convertView.findViewById(R.id.fruit_name);
convertView.setTag(viewHolder);
} else {
viewHolder = convertView.getTag();
}
viewHolder.fruitImage.setImageResource(fruit.getImageId);
viewHolder.fruitName.setText(fruit.getName);
}
AI写代码
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/gongjdde/article/details/90054166