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;    }}
原创粉丝点击