您的位置:首页 > 其它

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

2016-09-05 12:53 429 查看
</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>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: