XRecyclerView多条目加载

导入依赖包

compile 'com.jcodecraeer:xrecyclerview:1.3.2'

API

 

public static final String TYPE_PATH = "http://192.168.28.5/mobile/index.php?act=goods_class";
public static final String TYPE_HOME="http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage";
XML中
<com.jcodecraeer.xrecyclerview.XRecyclerView  android:id="@+id/xre_xrv"  android:layout_width="wrap_content"  android:layout_height="wrap_content"> </com.jcodecraeer.xrecyclerview.XRecyclerView>

条目点击所需要的接口

public interface OnItemClickLitener {
    void onItemClick(View view, int position);
    void onItemLongClick(View view , int position);
}

banner所需要的图片类

public class GlideImageLoader extends ImageLoader{
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context).load(path).into(imageView);
    }
}

MainActivity

 

public class FragmentOne extends Fragment{
    private XRecyclerView xr;
    private List<String> list=new ArrayList<>();
    private int curr;
    private XRAdapter adapter;
    private ImageView imageView;
    EditText search;
   // private CountdownView countdownView;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.fragment_one,null);
        imageView=(ImageView) view.findViewById(R.id.erweima);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                 /*扫描二维码*/

                startActivityForResult(new Intent(getActivity(), CaptureActivity.class),0);

            /*生成二维码*/

            }
        });
        //搜索框点击事件
        search=(EditText) view.findViewById(R.id.search);
        //搜索框跳转
        search.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(getActivity(), SearchActivity.class);
                startActivity(intent);
            }
        });
        xr=(XRecyclerView) view.findViewById(R.id.xre_xrv);
       // countdownView=(CountdownView) view.findViewById(R.id.countdownView);
       // countdownView.start(1000000);
        //加布局管理器
        LinearLayoutManager layoutManager=new LinearLayoutManager(getActivity());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        xr.setLayoutManager(layoutManager);
        xr.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {//下拉刷新
                curr=0;
                list.clear();
                getData(API.TYPE_HOME,curr);
                xr.refreshComplete();
            }

            @Override
            public void onLoadMore() {//上拉加载
                 curr++;//实行分页
                getData(API.TYPE_HOME,curr);
                xr.refreshComplete();
            }
        });

        getData(API.TYPE_HOME,1);
        return view;
    }
    private void getData(String url,int curr)
    {
        OkHttp3Utils.getInstance().doGet(url, new GsonObjectCallback<HomeBean>() {
            @Override
            public void onUi(HomeBean homeBean) {
                homeBean.getMsg();
                XRAdapter  mxradapter=new XRAdapter(getActivity(),homeBean.getData());
                xr.setAdapter(mxradapter);

            }

            @Override
            public void onFailed(Call call, IOException e) {

            }
        });
    }
}

 

XRAdapter中

 

public class XRAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    HomeBean.DataBean list;
    Context mcontext;
    ArrayList mlist,mlist1;
    private ArrayList<HomeBean.DataBean.Ad5Bean> ad5;
    List<HomeBean.DataBean.ActivityInfoBean.ActivityInfoListBean> data1;
    //List<HomeBean.DataBean.SubjectsBean> s;
    List<HomeBean.DataBean.SubjectsBean.GoodsListBeanX> goods;
    List<HomeBean.DataBean.SubjectsBean.GoodsRelationListBean> goods2;
    private  enum Item_Type{
        Typeone,Typetwo,Typethree,Typefour,Typefive,Typesix
    }

    public XRAdapter(Context mcontext, HomeBean.DataBean list) {
        this.mcontext = mcontext;
        this.list = list;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == Item_Type.Typeone.ordinal()) {
            View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_a, null);
            ViewHolderA viewHolder = new ViewHolderA(mView);
            return viewHolder;

        } else if (viewType == Item_Type.Typetwo.ordinal()) {

            View mView1 = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_b, null);
            ViewHolderB viewHolder = new ViewHolderB(mView1);
            return viewHolder;
        } else if (viewType == Item_Type.Typethree.ordinal()) {
            View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_c, null);
            ViewHolderC viewHolder = new ViewHolderC(mView);
            return viewHolder;
        }else if (viewType == Item_Type.Typefour.ordinal()) {
            View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_d, null);
            ViewHolderD viewHolder = new ViewHolderD(mView);
            return viewHolder;
        }else if(viewType==Item_Type.Typefive.ordinal())
        {
            View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_e, null);
            ViewHolderE viewHolder = new ViewHolderE(mView);
            return viewHolder;
        }else if(viewType==Item_Type.Typesix.ordinal())
        {
            View mView = LayoutInflater.from(mcontext).inflate(R.layout.recycle_item_f, null);
            ViewHolderF viewHolder = new ViewHolderF(mView);
            return viewHolder;
        }
        return null;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        if (holder instanceof ViewHolderA) {
            mlist=new ArrayList();
            for(int i=0;i<list.getAd1().size();i++){
                mlist.add(list.getAd1().get(i).getImage());
            }
            //设置图片加载器
            ((ViewHolderA) holder).mbanner.setImageLoader(new GlideImageLoader());
            ((ViewHolderA) holder).mbanner.setImages(mlist);
            ((ViewHolderA) holder).mbanner.start();

        } else if (holder instanceof ViewHolderB) {

            final List<HomeBean.DataBean.Ad5Bean> ad5 = list.getAd5();
            ViewHolderB holderB= (ViewHolderB) holder;
            holderB.recyclerView.setLayoutManager(new GridLayoutManager(mcontext,ad5.size()));
            Home_TwoAdapter adapter = new Home_TwoAdapter(ad5, mcontext);
            holderB.recyclerView.setAdapter(adapter);
            adapter.setOnItemClickLitener(new OnItemClickLitener() {
                @Override
                public void onItemClick(View view, int position) {
                    Intent intent=new Intent(mcontext,DianjiActivity.class);
                    intent.putExtra("aaa",ad5.get(position).getUrl());
                    mcontext.startActivity(intent);
                }
                @Override
                public void onItemLongClick(View view, int position) {
                }
            });

        } else if (holder instanceof ViewHolderC) {
            List<HomeBean.DataBean.ActivityInfoBean.ActivityInfoListBean> data1 = list.getActivityInfo().getActivityInfoList();
            ViewHolderC holderC= (ViewHolderC) holder;
            holderC.countdownView.start(100000000);
            LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mcontext);
            linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
            holderC.recyclerView1.setLayoutManager(linearLayoutManager);
            Home_threeAdpater adapter1 = new Home_threeAdpater(data1,mcontext);
            holderC.recyclerView1.setAdapter(adapter1);
        }else if (holder instanceof ViewHolderD) {
           /* mlist1=new ArrayList();
            for(int i=0;i<list.getSubjects().size();i++){
                mlist1.add(list.getSubjects().get(i).getImage());
            }
            //设置图片加载器
            ((ViewHolderD) holder).mybanner1.setImageLoader(new GlideImageLoader());
            ((ViewHolderD) holder).mybanner1.setImages(mlist1);
            ((ViewHolderD) holder).mybanner1.start();*/
             String s=list.getSubjects().get(2).getDescImage();
            ViewHolderD holderD= (ViewHolderD) holder;
            ImageLoader.getInstance().displayImage(s,((ViewHolderD) holder).d_img);
        }else if (holder instanceof ViewHolderE)
        {
                 goods = list.getSubjects().get(2).getGoodsList();
                ViewHolderE holderE= (ViewHolderE) holder;
                LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mcontext);
                linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
                holderE.recy2.setLayoutManager(linearLayoutManager);
                Home_fourAdpater adapter2 = new Home_fourAdpater(goods,mcontext);
                holderE.recy2.setAdapter(adapter2);
        }else if(holder instanceof ViewHolderF)
        {
            goods2=list.getSubjects().get(3).getGoodsRelationList();
            ViewHolderF holderF= (ViewHolderF) holder;
            holderF.recy3.setLayoutManager(new GridLayoutManager(mcontext,2));
            Home_fiveAdpater adapter3 = new Home_fiveAdpater(goods2,mcontext);
            holderF.recy3.setAdapter(adapter3);
           adapter3.setOnItemClickLitener(new OnItemClickLitener() {
                @Override
                public void onItemClick(View view, int position) {
                    Intent intent=new Intent(mcontext, DianJi2Activity.class);
                   intent.putExtra("b",goods2.get(position).getGoodsName());
                    mcontext.startActivity(intent);
                }

                @Override
                public void onItemLongClick(View view, int position) {

                }
            });
        }
    }

    @Override
    public int getItemCount() {
        return 6;
    }

    @Override
    public int getItemViewType(int position) {

        if (position == 0) {
            return Item_Type.Typeone.ordinal();
        } else if (position == 1) {
            return Item_Type.Typetwo.ordinal();
        } else if (position == 2) {
            return Item_Type.Typethree.ordinal();
        }else if (position == 3) {
            return Item_Type.Typefour.ordinal();
        }else if(position==4)
        {
            return Item_Type.Typefive.ordinal();
        }else if(position==5)
        {
            return Item_Type.Typesix.ordinal();
        }
        return -1;
    }
    class ViewHolderA extends ViewHolder {
        public Banner mbanner;

        public ViewHolderA(View itemView) {
            super(itemView);

            mbanner = (Banner) itemView.findViewById(R.id.mybanner);
            mbanner.setOnBannerListener(new OnBannerListener() {
                @Override
                public void OnBannerClick(int position) {
                    Intent intent = new Intent(mcontext, DianjiActivity.class);
                    mcontext.startActivity(intent);
                }
            });
        }
    }


    class ViewHolderB extends ViewHolder {


        RecyclerView recyclerView;

        public ViewHolderB(View itemView) {
            super(itemView);
            recyclerView=(RecyclerView) itemView.findViewById(R.id.recy);

        }
    }

    class ViewHolderC extends ViewHolder {

        public RecyclerView recyclerView1;
        CountdownView countdownView;
        public ViewHolderC(View itemView) {
            super(itemView);
            recyclerView1=(RecyclerView) itemView.findViewById(R.id.recy1);
            countdownView=(CountdownView) itemView.findViewById(R.id.countdownView);
        }
    }
    class ViewHolderD extends ViewHolder {

       /* public Banner mybanner1;*/
        public ImageView d_img;
        public ViewHolderD(View itemView) {
            super(itemView);
           /* mybanner1 = (Banner) itemView.findViewById(R.id.mybanner1);*/
            d_img=(ImageView) itemView.findViewById(R.id.d_img);
        }
    }
    class ViewHolderE extends ViewHolder{
         RecyclerView recy2;
        public ViewHolderE(View itemView) {
            super(itemView);
           recy2=(RecyclerView) itemView.findViewById(R.id.recy2);
        }
    }
    class ViewHolderF extends ViewHolder{
        RecyclerView recy3;
        public ViewHolderF(View itemView) {
            super(itemView);
            recy3=(RecyclerView) itemView.findViewById(R.id.recy3);
        }
    }
}

 

recycle_item_a

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"

    android:layout_height="150dp">
    <com.youth.banner.Banner
        android:id="@+id/mybanner"
        android:layout_width="match_parent"
        android:layout_height="150dp">

    </com.youth.banner.Banner>
</LinearLayout>
 

recycle_item_b

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:orientation="horizontal"
    android:layout_height="wrap_content">
   <android.support.v7.widget.RecyclerView
       android:id="@+id/recy"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">

   </android.support.v7.widget.RecyclerView>
</LinearLayout>

Home_TwoAdapter

public class Home_TwoAdapter extends RecyclerView.Adapter<MyViewHolder> {
     Context context;
    List<HomeBean.DataBean.Ad5Bean> ad5;

    public Home_TwoAdapter(List<HomeBean.DataBean.Ad5Bean> ad5, Context context) {
        this.ad5 = ad5;
        this.context = context;
    }

    //条目点击
    private OnItemClickLitener mOnItemClickLitener;

    public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)
    {
        this.mOnItemClickLitener = mOnItemClickLitener;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        MyViewHolder holder=null;
        holder = new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_home, parent, false));
        return holder;
    }

    public void onBindViewHolder(final MyViewHolder holder, int position){
        holder.tv.setText(ad5.get(position).getTitle());
        //ImageLoader imageLoader=ImageLoader.getInstance();
        ImageLoader.getInstance().displayImage(ad5.get(position).getImage(),holder.imageView);
        // 如果设置了回调,则设置点击事件
        if (mOnItemClickLitener != null)
        {
            holder.itemView.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    int pos = holder.getLayoutPosition();
                    mOnItemClickLitener.onItemClick(holder.itemView, pos);

                }
            });
        }
    }
    @Override
    public int getItemCount() {

        return ad5.size();
    }

}

class MyViewHolder extends RecyclerView.ViewHolder
{
    TextView tv;
    ImageView imageView;
    // public ImageView imageView1;

    public MyViewHolder(View view)
    {
        super(view);
        tv = (TextView) view.findViewById(R.id.home_text);
        imageView=(ImageView) view.findViewById(R.id.home_img);
        //imageView1=(ImageView) view.findViewById(R.id.home1_img);
    }
}

 

Home_threeAdpater

 

public class Home_threeAdpater  extends RecyclerView.Adapter<MyViewHolder1> {

    List<HomeBean.DataBean.ActivityInfoBean.ActivityInfoListBean> data1;
            Context mcontext1;

    public Home_threeAdpater(List<HomeBean.DataBean.ActivityInfoBean.ActivityInfoListBean> data1, Context mcontext1) {
        this.data1 = data1;
        this.mcontext1 = mcontext1;
    }

    //条目点击
    private OnItemClickLitener mOnItemClickLitener;



    public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)
    {
        this.mOnItemClickLitener = mOnItemClickLitener;
    }

    @Override
    public MyViewHolder1 onCreateViewHolder(ViewGroup parent, int viewType) {
    MyViewHolder1 holder1=null;
        holder1 = new MyViewHolder1(LayoutInflater.from(
                mcontext1).inflate(R.layout.item_home1, parent,
                false));
        return holder1;
    }

    @Override
    public void onBindViewHolder(MyViewHolder1 holder, int position) {
        // holder.tv.setText(ad5.get(position).getTitle());
        //ImageLoader imageLoader=ImageLoader.getInstance();
        ImageLoader.getInstance().displayImage(data1.get(position).getActivityImg(),holder.imageView1);

    }

    @Override
    public int getItemCount() {
        return data1.size();
    }
}
class MyViewHolder1 extends RecyclerView.ViewHolder
{

    ImageView imageView1;

    public MyViewHolder1(View view)
    {
        super(view);
        // tv = (TextView) view.findViewById(R.id.home_text);
        //imageView=(ImageView) view.findViewById(R.id.home_img);
        imageView1=(ImageView) view.findViewById(R.id.home1_img);
    }
}

 

Home_fourAdpater

public class Home_fourAdpater extends RecyclerView.Adapter<MyViewHolder2> {
    List<HomeBean.DataBean.SubjectsBean.GoodsListBeanX> goods;
    Context mcontext2;

    public Home_fourAdpater(List<HomeBean.DataBean.SubjectsBean.GoodsListBeanX> goods, Context mcontext2) {
        this.goods = goods;
        this.mcontext2 = mcontext2;
    }

    //条目点击
    private OnItemClickLitener mOnItemClickLitener;



    public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)
    {
        this.mOnItemClickLitener = mOnItemClickLitener;
    }

    @Override
    public MyViewHolder2 onCreateViewHolder(ViewGroup parent, int viewType) {

    MyViewHolder2    holder2=null;

        holder2 = new MyViewHolder2(LayoutInflater.from(
                mcontext2).inflate(R.layout.item_home2, parent,
                false));
        return holder2;
    }

    @Override
    public void onBindViewHolder(MyViewHolder2 holder, int position) {
        // holder.tv.setText(ad5.get(position).getTitle());
        //ImageLoader imageLoader=ImageLoader.getInstance();
        holder.textView1.setText(goods.get(position).getGoods_name());
        ImageLoader.getInstance().displayImage(goods.get(position).getGoods_img(),holder.imageView2);
        // 如果设置了回调,则设置点击事件
       /* if (mOnItemClickLitener != null)
        {
            holder2.itemView.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    int pos = holder2.getLayoutPosition();
                    mOnItemClickLitener.onItemClick(holder2.itemView, pos);

                }
            });

        }*/
    }

    @Override
    public int getItemCount() {
        return goods.size();
    }
}
class MyViewHolder2 extends RecyclerView.ViewHolder
{
    TextView textView1;
    ImageView imageView2;

    public MyViewHolder2(View view)
    {
        super(view);
        textView1 = (TextView) view.findViewById(R.id.item_home2_text);
        //imageView=(ImageView) view.findViewById(R.id.home_img);
        imageView2=(ImageView) view.findViewById(R.id.item_home2_img);
    }
}

 

Home_fiveAdpater

public class Home_fiveAdpater extends RecyclerView.Adapter<Home_fiveAdpater.MyViewHolder3>
{
    List<HomeBean.DataBean.SubjectsBean.GoodsRelationListBean> goods2;
    Context mcontext3;
    MyViewHolder3 holder3=null;

    public Home_fiveAdpater(List<HomeBean.DataBean.SubjectsBean.GoodsRelationListBean> goods2, Context mcontext3) {
        this.goods2 = goods2;
        this.mcontext3 = mcontext3;
    }
    //条目点击
    private OnItemClickLitener mOnItemClickLitener;

    public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)
    {
        this.mOnItemClickLitener = mOnItemClickLitener;
    }
    @Override
    public MyViewHolder3 onCreateViewHolder(ViewGroup parent, int viewType) {

        holder3 = new MyViewHolder3(LayoutInflater.from(
                mcontext3).inflate(R.layout.item_home3, parent,
                false));
        return holder3;
    }

    @Override
    public void onBindViewHolder(MyViewHolder3 holder, int position) {
        holder3.tv3.setText(goods2.get(position).getDescription());
        ImageLoader.getInstance().displayImage(goods2.get(position).getGoodsImage(),holder3.home3);
        // 如果设置了回调,则设置点击事件
        if (mOnItemClickLitener != null)
        {
            holder.itemView.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    int pos = holder3.getLayoutPosition();
                    mOnItemClickLitener.onItemClick(holder3.itemView, pos);

                }
            });
        }
    }


    @Override
    public int getItemCount() {
        return goods2.size();
    }

    class MyViewHolder3 extends RecyclerView.ViewHolder {

        TextView tv3;
        ImageView home3;
        public MyViewHolder3(View view) {
            super(view);
            tv3 = (TextView) view.findViewById(R.id.home3_text);
            home3=(ImageView) view.findViewById(R.id.home3_img);
        }
    }
}

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值