ListView的多条目加载
来源:互联网 发布:php 断点续传 编辑:程序博客网 时间:2024/05/16 08:39
多条目:需要重写 getViewTypeCount(); 和 getItemViewType(int position) 两个方法。根据Json串的类型有几个布局,就写几个 ViewHolderpublic class MyAdapter extends BaseAdapter { //定义一个上下文 Context context; //集合 List<MyBean.ResultsBean> list; private int TEXT = 0; private int IMAGETEXT = 1; private final DisplayImageOptions options; public MyAdapter(Context context, List<MyBean.ResultsBean> list) { this.context = context; this.list = list; //使用内存缓存//使用磁盘缓存//设置正在下载的图片//url为空或请求的资源不存在时//下载失败时显示的图片//设置图片格式//设置圆角图片 options = new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时 .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片格式 .displayer(new RoundedBitmapDisplayer(200))//设置圆角图片 .build(); } @Override public int getItemViewType(int position) { List<String> images = list.get(position).getImages(); if (images == null) { return TEXT; } else if (images != null && images.size() == 1) { return IMAGETEXT; } else { return TEXT; } } @Override public int getViewTypeCount() { return 2; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { //获取类型 int type = getItemViewType(position); if (type == IMAGETEXT) { viewholder1 holder1; if (convertView == null) { holder1 = new viewholder1(); convertView = View.inflate(context, R.layout.list_item, null); holder1.img = (ImageView) convertView.findViewById(R.id.list_img); holder1.tv1 = (TextView) convertView.findViewById(R.id.list_tv1); convertView.setTag(holder1); } else { holder1 = (viewholder1) convertView.getTag(); } holder1.tv1.setText(list.get(position).getDesc()); ImageLoader.getInstance().displayImage(list.get(position).getImages().get(0), holder1.img, options); return convertView; } else if (type == TEXT) { viewholder2 holder2; if (convertView == null) { holder2 = new viewholder2(); convertView = View.inflate(context, R.layout.list_item2, null); holder2.tv2 = (TextView) convertView.findViewById(R.id.list_tv2); convertView.setTag(holder2); } else { holder2 = (viewholder2) convertView.getTag(); } holder2.tv2.setText(list.get(position).getDesc()); } return convertView; } class viewholder1 { ImageView img; TextView tv1; } class viewholder2 { TextView tv2; }}
阅读全文
0 0
- ListView的多条目加载
- ListView的多条目加载
- Listview的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView的多条目加载
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- ListView多条目加载
- listview多条目加载
- Listview多条目加载
- 安卓本地视频播放SurfaceView+MediaPlayer
- 输入三个正整数,从大到小排序
- docker images 搭建私有镜像相关
- 大数据Hadoop环境安装与配置(原生)
- 1.c中如何用最简洁的代码判断任意整数的位数?
- ListView的多条目加载
- Python数据处理的瑞士军刀:pandas(12/10)
- 结构体的内存对齐问题
- 分享式商业模型
- 计算机语言历史——C语言
- hihocoder上第180周《Nature Numbers》
- 学徒浅析Android——Android原生下载机制针对0K大小文件下载异常的分析
- NEFU 1270 智力异或(2)|| 2017icpc青岛站 热身赛 C (01字典树)
- darwin之回调