今日要闻!ListView怎么优化?ListView的四种优化方式

发布时间:   来源:CSDN  


(相关资料图)

ListView的四种优化方式

优化方式一:

convertView的复用

代码如下:

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {    if (convertView == null) {//如果当前的convertView为null,则通过inflate产生一个view    convertView = View.inflate(context, R.layout.layout_pic_item,null);    }    TextView tvDis = (TextView) convertView.findViewById(R.id.tv_item_picture_desc);    tvDis.setText("设置数据");    return convertView;}

优化方式二:

ViewHolder的使用

需要用到两个方法:setTag和getTag方法:

@Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder holder;        View itemView = null;        if (convertView == null) {            itemView = View.inflate(context, R.layout.item_news_data, null);            holder = new ViewHolder(itemView);            //用setTag的方法把ViewHolder与convertView "绑定"在一起            itemView.setTag(holder);        } else {    //当不为null时,我们让itemView=converView,用getTag方法取出这个itemView对应的holder对象,就可以获取这个itemView对象中的组件            itemView = convertView;            holder = (ViewHolder) itemView.getTag();        }        NewsBean newsBean = newsListDatas.get(position);        holder.tvNewsTitle.setText(newsBean.title);        holder.tvNewsDate.setText(newsBean.pubdate);        mBitmapUtils.display(holder.ivNewsIcon, newsBean.listimage);        return itemView;    }}public class ViewHolder {@ViewInject(R.id.iv_item_news_icon)    private ImageView ivNewsIcon;// 新闻图片    @ViewInject(R.id.tv_item_news_title)    private TextView tvNewsTitle;// 新闻标题    @ViewInject(R.id.tv_item_news_pubdate)    private TextView tvNewsDate;// 新闻发布时间    @ViewInject(R.id.tv_comment_count)    private TextView tvCommentIcon;// 新闻评论    public ViewHolder(View itemView) {        ViewUtils.inject(this, itemView);    }}

相关文章Related

返回栏目>>