XRecyclerView多条目加载
来源:互联网 发布:mac os 配置 postman 编辑:程序博客网 时间:2024/06/05 11:33
导入依赖包
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); }}
<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_threeAdpaterpublic 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_fourAdpaterpublic 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_fiveAdpaterpublic 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 0
- XRecyclerView 多条目加载
- XRecyclerView多条目加载
- xRecyclerView的刷新,加载更多,多条目
- Android XRecyclerView(多条目加载实现)
- MVP实现xRecyclerview多条目加载
- XRecyclerView+上拉加载下拉刷新+多条目加载
- xrecyclerview多条目布局
- XRecyclerView的多条目加载(banner+列表)
- RecyclerView 条目点击事件 XRecyclerView刷新加载
- XRecyclerView的多条目请求数据,可以实现上拉加载下拉刷新
- mvp+retrofit+rxjava xrecyclerview实现多条目 下拉刷新 下拉加载 点击跳转
- xrecyclerview实现两种多条目
- MVP泛型+xRecyclerView+Retrofit+OkHttp+RxJava多条目,横向
- ListView多条目加载
- ListView 多条目加载
- listview多条目加载
- ListView多条目加载
- listview多条目加载
- hdu 1561
- js把html中的table数据导出到Excel中
- PAT刷题:1019. General Palindromic Number (20)
- 【bzoj1821】[JSOI2010]Group 部落划分
- mybatis分页多条件查询指定时间段数据的sql语句
- XRecyclerView多条目加载
- 发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素
- Linux suspend 流程介绍(2)之 freeze task
- 我的第一个博客
- 从“云计算”走向“雾计算”
- 打破合资限制?特斯拉可能在上海独资建厂
- 【CIO 早班车】假如云计算是段旅程,它可以给你提供这些攻略和装备
- 购物车2
- 最大生成树