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]
只会加载当前屏幕所要显示的数据。显示完成就会被回收到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]
相关文章推荐
- Android手机连接蓝牙打印机连接不上的问题
- Android开发读取assert下的txt文件
- Android studio 怎么设置Live Template
- 【Android】Spinner使用
- android中的栈,Task
- android的性能优化和应用体验改善
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- 利用gdb 调试android jni c动态库
- ImageView的属性android:scaleType
- Android_Studio常用插件
- Android学习笔记-junit测试
- Android中弹出对话框,AlertDialog关键代码
- Android中万能适配器
- 关于android中调用系统拍照,返回图片是旋转90度...
- android项目之间的相互引用出现的问题
- Android应用方法数查看,查看size是否超过65k
- Android View研究
- Android Android Studio 快捷键整理分享,IntelliJ IDEA使用技巧一览表
- Android事件处理机制研究
- Android ListView 适配键值事件和点击事件