Android中adapter的原理简单说明

来源:互联网 发布:手机淘宝开店的流程图 编辑:程序博客网 时间:2024/05/22 03:10

其实adapter原理并不难,就是adapter调用getView()来实现数据显示,一共调用getCount()次,getView()中使用position来标识不同的显示内容;getView()主要是将准备好的数据设置到规划好的布局控件中以及设置各控件的事件。

public class MyAdapter extends BaseAdapter{    private LayoutInflater mInflater;    public MyAdapter(Context context){        this.mInflater = LayoutInflater.from(context);    }    @Override    public int getCount() {        return mData.size();    }    @Override    public Object getItem(int arg0) {        return null;    }    @Override    public long getItemId(int arg0) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {                 ViewHolder holder = null;        if (convertView == null) {            holder = new ViewHolder(); //获取布局视图            convertView = mInflater.inflate(R.layout.vlist2, null);            holder.img = (ImageView)convertView.findViewById(R.id.img);            holder.title = (TextView)convertView.findViewById(R.id.title);            holder.info = (TextView)convertView.findViewById(R.id.info);            holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);            convertView.setTag(holder);        }else {            holder = (ViewHolder)convertView.getTag();        }        //获取mData列表中对象的属性值数据来设置设置vlist2布局中控件显示值        holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));        holder.title.setText((String)mData.get(position).get("title"));        holder.info.setText((String)mData.get(position).get("info"));        holder.viewBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                showInfo();                            }        });                 return convertView;    }class ViewHolder{public ImageView img;public TextView title;public TextView info;public Button viewBtn;}}


0 0