多条目

package a16.erin.list_banner_demo;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by mamiaomiao on 17/8/17.
 */

public class MyAdapter extends BaseAdapter {
    private List<BookDataBean.ResultBean.ImageListBean> list = new ArrayList<>();//banner下方图文显示条目的数据;
    private final int banner_type = 0, text_type = 1, img_type = 2;//自定义的值,但是不能>=viewtype返回的值;
    private Context context;
    private DisplayImageOptions options;
    //图片加载器
    private com.nostra13.universalimageloader.core.ImageLoader loader= com.nostra13.universalimageloader.core.ImageLoader.getInstance();

    public MyAdapter(Context context) {
        this.context = context;
        ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(context);
        loader.init(configuration);
        options=new DisplayImageOptions.Builder()
                .cacheOnDisk(true)
                .cacheInMemory(true)

                .build();
    }
    public void addData(List<BookDataBean.ResultBean.ImageListBean> list){
        this.list.addAll(list);
        notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
//多条目展示

    @Override
    public int getItemViewType(int position) {
        if(position==0){//显示banner
            return banner_type;
        }

//        if (list.get(position).getType().equals("horizontalScrollCard")) {
//            return banner_type;
//        }
//        if (list.get(position).getType().equals("textCard")) {
//            return text_type;
//        }
        return img_type;
    }

    @Override
    public int getViewTypeCount() {
        return 3;
    }

    @Override
    public View getView(int position, View convertView, final ViewGroup parent) {
        //获取当前position对应的条目需要显示的视图类型
        int type = getItemViewType(position);
        ViewHolder1 viewHolder1 = null;
        ViewHolder2 holder2 = null;
        ViewHolder holder3=null;
        if (convertView == null) {
            switch (type) {
                case banner_type:
                    convertView = View.inflate(context, R.layout.banner_laout, null);
                    viewHolder1 = new ViewHolder1(convertView);
                    convertView.setTag(viewHolder1);
                    break;
                case text_type:
                    convertView = View.inflate(context, R.layout.text_item, null);
                    holder2 = new ViewHolder2(convertView);
                    convertView.setTag(holder2);
                    break;
                case img_type:
                    convertView = View.inflate(context, R.layout.img_item, null);
                    holder3=new ViewHolder(convertView);
                    convertView.setTag(holder3);
                    break;
                default:
                    break;
            }
        }else {
            switch (type) {
                case banner_type:
                    viewHolder1=(ViewHolder1)convertView.getTag();
                    break;
                case text_type:
                    holder2 = (ViewHolder2)convertView.getTag();
                    break;
                case img_type:
                    holder3=(ViewHolder)convertView.getTag();
                    break;
                default:
                    break;
            }
        }
        /************赋  值***********************/
        switch (type) {
            case banner_type:
                viewHolder1.mybanner.setImageLoader(new ImageLoader() {
                    @Override
                    public void displayImage(Context context, Object path, ImageView imageView) {
                        BookDataBean.ResultBean.ImageListBean bean=(BookDataBean.ResultBean.ImageListBean)path;
//给轮播图加载网络图片;
                        loader.displayImage(bean.getImageUrl(),imageView,options);

                    }
                });
//截取总数据里的前5条数据;
                viewHolder1.mybanner.setImages(list.subList(0,5));
                viewHolder1.mybanner.start();
                break;
            case text_type:
                holder2 = (ViewHolder2)convertView.getTag();


                break;
            case img_type:
                holder3=(ViewHolder)convertView.getTag();
                loader.displayImage(list.get(position).getImageUrl(),holder3.myimg,options);
holder3.myimgtext.setText("id="+list.get(position).getId());

                break;
            default:
                break;
        }

        return convertView;
    }

    public static class ViewHolder1 {
        public View rootView;
        public Banner mybanner;

        public ViewHolder1(View rootView) {
            this.rootView = rootView;
            this.mybanner = (Banner) rootView.findViewById(R.id.mybanner);
        }

    }

    public static class ViewHolder2 {
        public View rootView;
        public TextView mytext;

        public ViewHolder2(View rootView) {
            this.rootView = rootView;
            this.mytext = (TextView) rootView.findViewById(R.id.mytext);
        }

    }

    public static class ViewHolder {
        public View rootView;
        public ImageView myimg;
        public TextView myimgtext;

        public ViewHolder(View rootView) {
            this.rootView = rootView;
            this.myimg = (ImageView) rootView.findViewById(R.id.myimg);
            this.myimgtext = (TextView) rootView.findViewById(R.id.myimgtext);
        }

    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值