Android中adapter的原理简单说明
16lz
2021-01-26
其实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;}}
更多相关文章
- android中onMeasure初看,深入理解布局之一!
- Android零碎知识点-更新中
- ImageView显示图片时,上下出现多余空白。
- 28. android——miniTwitter登录界面 详解
- Android(安卓)布局优化之include与merge
- Android文本输入框EditText方法说明和属性
- Tabhost+picture
- Dialog详解
- android背景图片及状态切换