没有优化之前的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