Android适配器之BaseAdapter
来源:互联网 发布:程序员考试通过条件 编辑:程序博客网 时间:2024/05/29 16:27
BaseAdapter
所有适配器的父类,自定义很强,适合各种情况下使用,通过创建子类,重写方法实现
实际开发过程中一般是利用自定义适配器来继承BaseAdapter ;下面介绍如何BaseAdapter 的相关方法和参数.
使用适配器的步骤:
1、 准备数据 List,Map,int[]
2、 准备 每个Item的布局
3、 准备BaseAdapter的子类,完成各个方法
4、 设置到AdapterView显示到界面
getCount()
getItem()
返回Adapter数据中与指定索引对应的数据项 position
getItemId()
返回在列表中与指定索引对应的行id position
getView()
优化方案:
1. 重用缓存convertView传递给getView()方法来避免填充不必要的视图
2. 使用ViewHolder模式来避免没有必要的调用findViewById():因为太多的findViewById也会影响性能)
/* position 当前操作的Item
* convertView 布局复用的View,当AdapterView滚动后,消失的ItemView会赋值到convertView,等待重新显示
* parent AdapterView, ListView(list.setAdapter())
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item, null);
holder=new ViewHolder();
holder.image = (ImageView) convertView.findViewById(R.id.imageView1);
holder.text = (TextView) convertView.findViewById(R.id.textView1);
/*ViewHolder对象作为标签附加到convertView上,当convertView被重复利用的时候,因为上面有ViewHolder对象,
*/ 所以convertView就具有了ViewHolder中的几个属性,这样就节省了findViewById()这个过程。
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
holder.image.setImageResource(images[position % images.length]);
holder.text.setText("Item" + position);
return convertView;
}
/* 将item布局文件中需要展示的控件定义为属性
* 用于将item中多个控件合成一个整体
*/
class ViewHolder{
ImageView image;
TextView text;
}
0 0
- Android适配器之BaseAdapter
- Android适配器之BaseAdapter
- Android适配器之BaseAdapter
- Android学习之适配器BaseAdapter
- Android适配器之-----BaseAdapter(帮助文档)
- Android适配器之------BaseAdapter(例子)
- Android之BaseAdapter适配器使用技巧
- Android必学之数据适配器BaseAdapter
- Android之BaseAdapter适配器使用技巧
- Android必学之数据适配器BaseAdapter
- Android必学之数据适配器BaseAdapter
- Android必学之数据适配器BaseAdapter
- Android自定义适配器BaseAdapter
- Android 适配器BaseAdapter详解
- Android适配器BaseAdapter详解
- android 自定义适配器BaseAdapter
- android开发之继承BaseAdapter实现通用数据适配器
- Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法
- 安装valgrind时报错
- Zigbee之Z-Stack
- OpenGL一: 初始化窗口,简单画图
- ASP.NET网站性能优化之成员资格,角色,配置文件的优化
- POJ分类
- Android适配器之BaseAdapter
- Eclipse上运行Android程序时,总出现emulator-5554 disconnected!的解决方法
- Gold Coins
- 项目驱动学习
- linux学习之磁盘同步
- Android设置RadioButton在文字的右边
- 关于css/js/jsp
- 单向链表是否成环
- 命令行下编译Cocos2d-x-3.0新建的项目以及在多平台上运行