Advertisement
joris

RecycleDataAdapter

Aug 10th, 2017
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.52 KB | None | 0 0
  1. package com.tv.practise.adapter;
  2.  
  3. /**
  4.  * Created by Ravindra Kushwaha on 10/10/16.
  5.  */
  6. public class RecycleDataAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  7.  
  8.     private Context mContext;
  9.     private ArrayList<RecycleBen> data;
  10.  
  11.  
  12.     public  class SimpleText extends RecyclerView.ViewHolder {
  13.         TextView first_data_tv;
  14.  
  15.         public SimpleText(View v) {
  16.             super(v);
  17.             this.first_data_tv = (TextView) v.findViewById(R.id.first_data_tv);
  18.         }
  19.     }
  20.  
  21.     public   class SimpleImage extends  RecyclerView.ViewHolder {
  22.         ImageView second_data_iv;
  23.         ProgressBar second_pb;
  24.  
  25.         public SimpleImage(View v) {
  26.             super(v);
  27.             this.second_data_iv = (ImageView) v.findViewById(R.id.second_data_iv);
  28.             this.second_pb = (ProgressBar)v.findViewById(R.id.second_pb);
  29.         }
  30.     }
  31.  
  32.     public  class SimpleImageWithText extends  RecyclerView.ViewHolder {
  33.         TextView third_data_tv;
  34.         ImageView third_iv;
  35.         ProgressBar third_pb;
  36.  
  37.         public SimpleImageWithText(View v) {
  38.             super(v);
  39.             this.third_data_tv = (TextView) v.findViewById(R.id.third_data_tv);
  40.             this.third_iv = (ImageView) v.findViewById(R.id.third_iv);
  41.             this.third_pb = (ProgressBar)v.findViewById(R.id.third_pb);
  42.         }
  43.     }
  44.  
  45.     public RecycleDataAdapter(Context mContext, ArrayList<RecycleBen> data) {
  46.         this.mContext = mContext;
  47.         this.data = data;
  48.     }
  49.  
  50.     @Override
  51.     public  RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  52.  
  53.         View itemView;
  54.         if(viewType==1)
  55.         {
  56.  
  57.             itemView = LayoutInflater.from(parent.getContext())
  58.                     .inflate(R.layout.recycle_first_item, parent, false);
  59.  
  60.             return new SimpleText(itemView
  61.  
  62.             );
  63.  
  64.         }
  65.         else if(viewType==2)
  66.         {
  67.             itemView = LayoutInflater.from(parent.getContext())
  68.                     .inflate(R.layout.recycle_fsecond_item, parent, false);
  69.             return new SimpleImage(itemView);
  70.         }
  71.         else
  72.         {
  73.             itemView = LayoutInflater.from(parent.getContext())
  74.                     .inflate(R.layout.recycle_third_item, parent, false);
  75.             return new SimpleImageWithText(itemView);
  76.         }
  77.  
  78.  
  79.  
  80.     }
  81.  
  82.     @Override
  83.     public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
  84.         RecycleBen bean = data.get(position);
  85.  
  86.         if(holder.getItemViewType()==1)
  87.         {
  88.  
  89.             ((SimpleText)holder).first_data_tv.setText(bean.getName());
  90.  
  91.         }
  92.         else if(holder.getItemViewType()==2)
  93.         {
  94.             final SimpleImage simple_holder = (SimpleImage)holder;
  95.  
  96.  
  97.  
  98.             simple_holder.second_pb.setVisibility(View.VISIBLE);
  99.             Glide.with(mContext)
  100.                     .load(bean.getImage_url())
  101.                     .fitCenter()
  102.                     .crossFade()
  103.                     .listener(new RequestListener<String, GlideDrawable>() {
  104.                         @Override
  105.                         public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
  106.                             if (e instanceof UnknownHostException)
  107.                                 simple_holder.second_pb.setVisibility(View.VISIBLE);
  108.  
  109.                             return false;
  110.                         }
  111.  
  112.                         @Override
  113.                         public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
  114.                             simple_holder.second_pb.setVisibility(View.GONE);
  115.                             simple_holder.second_data_iv.setVisibility(View.VISIBLE);
  116.                             return false;
  117.                         }
  118.                     }).into(simple_holder.second_data_iv);;
  119.  
  120.         }
  121.         else {
  122.  
  123.             final SimpleImageWithText third_holder = (SimpleImageWithText)holder;
  124.  
  125.             third_holder.third_data_tv.setText(bean.getName());
  126.  
  127.             third_holder.third_pb.setVisibility(View.VISIBLE);
  128.             Glide.with(mContext)
  129.                     .load(bean.getImage_url())
  130.                     .fitCenter()
  131.                     .crossFade()
  132.                     .listener(new RequestListener<String, GlideDrawable>() {
  133.                         @Override
  134.                         public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
  135.                             if (e instanceof UnknownHostException)
  136.                                 third_holder.third_pb.setVisibility(View.VISIBLE);
  137.  
  138.                             return false;
  139.                         }
  140.  
  141.                         @Override
  142.                         public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
  143.                             third_holder.third_pb.setVisibility(View.GONE);
  144.                             third_holder.third_iv.setVisibility(View.VISIBLE);
  145.                             return false;
  146.                         }
  147.                     }).into(third_holder.third_iv);;
  148.  
  149.  
  150.  
  151.         }
  152.  
  153.     }
  154.  
  155.  
  156.  
  157.  
  158.     @Override
  159.     public int getItemViewType(int position) {
  160.         return Integer.parseInt(data.get(position).getType_row());
  161.     }
  162.  
  163.     @Override
  164.     public int getItemCount() {
  165.         return data.size();
  166.     }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement