Android之Adapter总结
来源:互联网 发布:淘宝消费者投诉电话 编辑:程序博客网 时间:2024/05/16 11:54
— ,介绍Adapter
Adapter是数据和UI(View)之间一个桥梁。如下图直观的表达了Data、Adapter、View三者的关系:
二,Adapter的继承关系
有两个adapter的体系,如下:
1、
2、
三,Adapate 的使用
常用方法继承BaseAdapter
private class SoftwareAdapter extends BaseAdapter{
@Override
public int getCount() {
return appInfos.size();
}
@Override
public Object getItem(int position) {
return appInfos.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
viewHolder Holder =null;
if(arg1 == null){
arg1 = View.inflate(MainActivity.this, R.layout.item_view, null);
Holder = new viewHolder();
//应用的名字
Holder.tv_app_name= (TextView) arg1.findViewById(R.id.tv_appname);
//应用的大小
Holder.tv_app_size= (TextView) arg1.findViewById(R.id.tv_app_size);
//应用的安装位置
Holder.tv_app_location= (TextView) arg1.findViewById(R.id.tv_location);
//应用的图标
Holder.iv_icon = (ImageView) arg1.findViewById(R.id.iv_icon);
arg1.setTag(Holder);
}else{
Holder = (viewHolder) arg1.getTag();
}
AppInfo appInfo = appInfos.get(position);
Holder.tv_app_name.setText(appInfo.getAppName());
Holder.tv_app_size.setText(Formatter.formatFileSize(MainActivity.this,appInfo.getAppSize()));
Holder.iv_icon.setImageDrawable(appInfo.getIcon());
return arg1;
}
}
static class viewHolder{
TextView tv_app_name;
TextView tv_app_size;
TextView tv_app_location;
ImageView iv_icon;
}
有时候,列表不光会用来做显示用,我们同样可以在在上面添加按钮。添加按钮首先要写一个有按钮的xml文件,然后自然会想到用上面的方法定义一个适配器,然后将数据映射到布局文件上。但是事实并非这样,因为按钮是无法映射的,即使你成功的用布局文件显示出了按钮也无法添加按钮的响应,这时就要研究一下ListView是如何现实的了,而且必须要重写一个类继承BaseAdapter。下面的示例将显示一个按钮和一个图片,两行字如果单击按钮将删除此按钮的所在行。并告诉你ListView究竟是如何工作的。
- BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;
- ArrayAdapter支持泛型操作,最为简单,只能展示一行字。
- SimpleAdapter有最好的扩充性,可以自定义出各种效果。
- SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。
- Android之Adapter总结
- Adapter---Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- Android之Adapter用法总结
- ceph存储 strace命令用法详解
- 多线程之Handler
- hdu5344MZL's simple problem stl set
- 结合MongoDB开发LBS应用
- 9.3栈和队列(九)——动物收容所,先进先出
- Android之Adapter总结
- OpenCV3.0 兼容VS2010与VS2013的问题
- 内联函数的使用以及注意点
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- gdal集成kml库的做法
- Android 更新UI的两种方法——handler和runOnUiThread()
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
- thinkphp3.1多表关联查询
- redis日排行榜,周排行榜