首页 > 其他 > 详细

在getview方法中有三个参数,起到优化的部分为ViewHolder的使用,主要方法setTag(),getTag()

时间:2019-08-04 19:19:25      阅读:150      评论:0      收藏:0      [点我收藏+]

适配器代码如下:

public class Myadapter extends BaseAdapter {
List<String> date;
Context context;

//构造方法
public Myadapter(List<String> date, Context context) {
this.date = date;
this.context = context;
}

//获取ListView的总条目数
@Override
public int getCount() {
return date.size();
}

//条目的索引
@Override
public Object getItem(int position) {
return date.get(position);
}

//获取条目的位置
@Override
public long getItemId(int position) {
return position;
}

/*
* 渲染(填充),调用data.size次
* position 索引
* convertView 条目的View
* parent :Listview
* */
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
//当convertView首次加载的时候
if (convertView == null) {
//获取打气筒
LayoutInflater inflater = LayoutInflater.from(context);
//填充单个Item
convertView = inflater.inflate(R.layout.item_main, null);
//获取Viewholder对象,减少findViewById的次数
holder = new ViewHolder();
//从填充的条目View中找到我们所关心的控件
holder.textView = convertView.findViewById(R.id.tv_my);
//将holder装进convertView的口袋
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag(http://www.my516.com);
}
//填充数据
holder.textView.setText(date.get(position));
return convertView;
}
//创建一个容器装要复用的View
static class ViewHolder {
TextView textView;
}
}

--------------------- 

在getview方法中有三个参数,起到优化的部分为ViewHolder的使用,主要方法setTag(),getTag()

原文:https://www.cnblogs.com/ly570/p/11299139.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!