android listview优化

来源:互联网 发布:网络合作学习平台 编辑:程序博客网 时间:2024/06/04 01:04

listview的优化

代码如下:
class MyAdapter extends BaseAdapter{        //得到模型层中元素的数量,用来确定listview需要有多少个条目        @Override        public int getCount() {            // TODO Auto-generated method stub            return newsList.size();        }        @Override        //返回一个View对象,作为listview的条目显示至界面,每当界面显示一个item,就会调用一次        public View getView(int position, View convertView, ViewGroup parent) {            View v = null;            ViewHolder mHolder;            //优化1:判断条目是否有缓存,convertView 是view缓存,会将之前显示的item缓存起来            if(convertView == null){                //把布局文件填充成一个View对象                v = View.inflate(MainActivity.this, R.layout.item_listview, null);                //获取布局填充器对象    //          LayoutInflater inflater = LayoutInflater.from(MainActivity.this);    //          使用布局填充器填充布局文件    //          View v2 = inflater.inflate(R.layout.item_listview, null);       //          LayoutInflater inflater2 = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);    //          View v3 = inflater2.inflate(R.layout.item_listview, null);                mHolder = new ViewHolder();                //把布局文件中所有组件的对象封装至ViewHolder对象中,避免每次调用getView()函数重新findViewById                mHolder.tv_title = (TextView) v.findViewById(R.id.tv_title);                mHolder.tv_detail = (TextView) v.findViewById(R.id.tv_detail);                mHolder.tv_comment = (TextView) v.findViewById(R.id.tv_comment);                mHolder.siv = (SmartImageView) v.findViewById(R.id.iv);                //把ViewHolder对象封装至View对象中                v.setTag(mHolder);            }            else{                v = convertView;                mHolder = (ViewHolder) v.getTag();//取出ViewHolder对象            }            //给三个文本框设置内容            mHolder.tv_title.setText(news.getTitle());            mHolder.tv_detail.setText(news.getDetail());            mHolder.tv_comment.setText(news.getComment());            //给新闻图片imageview设置内容            mHolder.siv.setImageUrl(news.getImageUrl());//采用第三方图片下载库            return v;        }        //优化2:        class ViewHolder{            //条目的布局文件中有什么组件,这里就定义什么属性            TextView tv_title;            TextView tv_detail;            TextView tv_comment;            SmartImageView siv;        }        @Override        public Object getItem(int position) {            return null;//有需要时自己更改        }        @Override        public long getItemId(int position) {            return 0;//有需要时自己更改        }    }
0 0
原创粉丝点击