码迷,mamicode.com
首页 > 其他好文 > 详细

Adapter

时间:2015-10-27 13:09:48      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

数据源的来源是各种各样的,而ListView展示数据是有一定的要求的。降低程序的耦合性。容易扩展。

最常用的适配器  BaseAdapter

ListView GradView 的显示与缓存机制

技术分享

需要的时候才显示,显示完就被回收到缓存。

BaseAdapter基本结构:

1、public int getCount() :适配器中数据集中数据的个数,就是这个listView总共要显示多少数据

2、public object getItem(int position)  获取数据集中与指定索引对应的数据项

3、public long getItemId(int position)  获取指定行对应的ID

4、public View getView(int position , View convertView,ViewGroup parent)  获取每一个Item的显示内容。

1、创建布局文件

2、创建数据源   先bean  对象来封装要现实的内容。,基本为每个控件建立一个,实现构造方法。   在Activity 里面建了一些假数据。

3、创建一个adater ,继承自 BaseAdapter ,实现四个方法。实现构造方法。

 

getView实现的三重境界。  初始化LayoutInflater ,这时候就需要传进来一个 Context 对象来初始化LayoutInflater 对象。。

layoutInfalter mInflater;  通过他就可以把XML文件转换成View。

View view = mInflater.Inflater(R.layout.item,null);

通过View一次findViewByID 找到控件

然后从mList里面取出数据赋给找到的控件。

由于每一项里面都会使用到mList.get(position)  对象。所以提取出来。

 imageView.setImageResource(mList.get(position).ImageItemimnageResid);

 

逗比式:没有任何优化处理,每次都创建一个新的View 对象,设置控件

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //为空,View违背实例化,缓冲池中无缓存。
        View view = mInflater.inflate(R.layout.item_listview, null);
        
        ivPicture = (ImageView) view.findViewById(R.id.iv_picture);
        tvName = (TextView) view.findViewById(R.id.tv_name);
        tvPosition = (TextView) view.findViewById(R.id.tv_position);
        tvNumber = (TextView) view.findViewById(R.id.tv_number);

        ItemBean bean = mList.get(position);

        ivPicture.setImageResource(bean.ivPicture);
        tvName.setText(bean.tvName);
        tvPosition.setText(bean.tvPosition);
        tvNumber.setText(bean.tvNumber);

        return view;
    }

 

普通式:用listView的缓存机制。convertView 就可以用上缓存机制。return convertView

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //为空,View违背实例化,缓冲池中无缓存。
        if(convertView ==null ){
            convertView = mInflater.inflate(R.layout.item_listview, null);
        }
        ivPicture = (ImageView) convertView.findViewById(R.id.iv_picture);
        tvName = (TextView) convertView.findViewById(R.id.tv_name);
        tvPosition = (TextView) convertView.findViewById(R.id.tv_position);
        tvNumber = (TextView) convertView.findViewById(R.id.tv_number);

        ItemBean bean = mList.get(position);

        ivPicture.setImageResource(bean.ivPicture);
        tvName.setText(bean.tvName);
        tvPosition.setText(bean.tvPosition);
        tvNumber.setText(bean.tvNumber);

        return convertView;
    }

 

Adapter

标签:

原文地址:http://www.cnblogs.com/zrui513/p/4913829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!