安卓开发学习心得-------自定义适配器BaseAdapter基础

来源:互联网 发布:衣服除皱喷雾 知乎 编辑:程序博客网 时间:2024/05/17 02:34

</pre>    自定义适配器的使用<p></p><p></p><h1><strong>1.ViewHolder优化baseAdpter的思路</strong></h1><p>--创建实体类Bean封装数据的类型</p><p>--初始化存放实体bean的ArrayList</p><p>--创建ViewHolder类,创建布局映射关系</p><p>--getView()方法中,判断convertView是否存在,为空则创建,并设置tag,否则通过tag来去除ViewHolder</p><p>--ViewHolder中的控件设置数据</p><p></p><h1>2.baseAdpater类的编写</h1><div>--声明两个变量:数据List和布局加载LayoutInflater</div><div><pre name="code" class="java"><span style="font-size:18px;">private List<String> data;private LayoutInflater mInflater;</span>
--构造器方法的参数为上下文以及数据List,上下文参数用于布局的加载
 <span style="font-size:18px;">public baseadapter(Context context,List<String> data){        this.data=data;        mInflater=LayoutInflater.from(context);    }</span>
--getCount(),getItem(),getItemId()分别为数据的大小,item以及id
    <span style="font-size:18px;">@Override    public int getCount() {        return data.size();    }    @Override    public Object getItem(int position) {        return data.get(position);    }    @Override    public long getItemId(int position) {        return position;    }</span>
--ViewHolder类的编写,定义数据显示的元素
<span style="font-size:18px;">class ViewHolder{        public ImageView iamge;        public TextView tv;    }</span>
--getView类的编写,判断convertView是否存在,为空则创建,并设置tag,否则通过tag来去除ViewHolder,
最后ViewHolder中的控件设置数据
<span style="font-size:18px;">@Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder viewHolder=null;        if(convertView == null){            viewHolder=new ViewHolder();            convertView=mInflater.inflate(R.layout.item,parent,false);            viewHolder.iamge= (ImageView) convertView.findViewById(R.id.id_image);            viewHolder.tv= (TextView) convertView.findViewById(R.id.id_tv );            convertView.setTag(viewHolder);        }else{                viewHolder= (ViewHolder) convertView.getTag();        }        viewHolder.iamge.setImageResource(R.mipmap.ic_launcher);        viewHolder.tv.setText(data.get(position));        return convertView;    }</span>







0 0
原创粉丝点击