您的位置:首页 > 移动开发 > Android开发

Android BaseAdapter

2015-09-28 15:48 459 查看
ListView显示与缓存机制:
只会加载当前屏幕所要显示的数据。显示完成就会被回收到Recycler中。

BaseAdapter 基本结构:
public int getCount(); // 适配器中数据集中数据的个数
public Object getIten(int position); //获取数据集中与指定索引对应的数据项
public long getItemId(int position); //获取指定行对应的ID
public View getView(int position,View convertView,ViewGroup parent); //获取每一个Item的显示内容

ViewHolder优化BaseAdapter:
创建Bean对象,用于封装数据。
在构造方法中初始化用于映射的数据LIST.
创建ViewHolder类,创建布局映射关系。
判断convertView,为空则创建,并设置TAG,否则通过TAG来取出ViewHolder
给ViewHolder中的控件设置数据。

[align=left]public class Adapter extends BaseAdapter{[/align]
[align=left] [/align]
[align=left] private List<ItemBean> list ;[/align]
[align=left] private LayoutInflater inflater ;[/align]
[align=left] [/align]
[align=left] public Adapter(List<ItemBean> list,Context context){[/align]
[align=left] list= this.list ;[/align]
[align=left] //context要使用当前的Adapter的界面对象 minflater布局装载器对象[/align]
[align=left] inflater=LayoutInflater. from(context);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] @Override[/align]
[align=left] public int getCount() {[/align]
[align=left] // TODO Auto-generated method stub[/align]
[align=left] return list .size();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] @Override[/align]
[align=left] public Object getItem(int position) {[/align]
[align=left] // TODO Auto-generated method stub[/align]
[align=left] return list .get(position);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] @Override[/align]
[align=left] public long getItemId(int position) {[/align]
[align=left] // TODO Auto-generated method stub[/align]
[align=left] return position;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] /**[/align]
[align=left] * 返回每一项所显示的内容[/align]
[align=left] */[/align]
[align=left] @Override[/align]
[align=left] public View getView(int position, View convertView, ViewGroup parent) {[/align]
[align=left] ViewHold viewHold;[/align]
[align=left] if(convertView==null){[/align]
[align=left] viewHold= new ViewHold();[/align]
[align=left] convertView= inflater.inflate(R.layout. item, null );[/align]
[align=left] viewHold .ima geView=(ImageView) convertView.findViewById(R.id.IVimage );[/align]
[align=left] viewHold. title= (TextView) convertView.findViewById(R.id.title );[/align]
[align=left] viewHold. content=(TextView) convertView.findViewById(R.id.text );[/align]
[align=left] convertView.setTag(viewHold);[/align]
[align=left] } else{[/align]
[align=left] viewHold=(ViewHold) convertView.getTag();[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] ItemBean bean= list.get(position);[/align]
[align=left] viewHold. imageView.setImageResource(bean.getImageid());[/align]
[align=left] viewHold. title.setText(bean.getTitle());[/align]
[align=left] viewHold. content.setText(bean.getText());[/align]
[align=left] return convertView;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] class ViewHold{[/align]
[align=left] public ImageView imageView ;[/align]
[align=left] public TextView title ;[/align]
[align=left] public TextView content ;[/align]
[align=left] }[/align]
[align=left]}[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: