Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.60 KB | None | 0 0
  1. package com.leavingstone.movla.util.adapter;
  2.  
  3. import android.content.Context;
  4. import android.support.percent.PercentLayoutHelper;
  5. import android.support.percent.PercentRelativeLayout;
  6. import android.support.v7.widget.AppCompatImageView;
  7. import android.support.v7.widget.CardView;
  8. import android.support.v7.widget.RecyclerView;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.FrameLayout;
  13. import android.widget.ImageView;
  14. import android.widget.RelativeLayout;
  15.  
  16. import com.bumptech.glide.Glide;
  17. import com.bumptech.glide.load.engine.DiskCacheStrategy;
  18. import com.leavingstone.movla.R;
  19. import com.leavingstone.movla.view.custom_components.MyImageView;
  20. import com.leavingstone.movla.view.fragments.list_fragment.custom_views.ImageLoaderAsyncTask;
  21. import com.leavingstone.movla.models.MyGarbageModel;
  22. import com.leavingstone.movla.global.application.MyApplication;
  23. import com.leavingstone.movla.view.custom_components.CTextView;
  24. import com.leavingstone.movla.view.custom_components.MySeekBar;
  25.  
  26. import java.io.IOException;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29.  
  30. /**
  31.  * Created by Jemo on 5/23/16.
  32.  */
  33. public class MyRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
  34.  
  35.     private Context context;
  36.     private int foundedQuantity;
  37.     private int cleanedQuantity;
  38.     private HeaderFooterViewHolder headerHolder;
  39.     //our items
  40.     private List<MyGarbageModel> items;
  41.     //headers
  42.     private List<View> headers = new ArrayList<>();
  43.     //footers
  44. //    List<View> footers = new ArrayList<>();
  45.  
  46.     private static final int TYPE_HEADER = 111;
  47.     private static final int TYPE_ITEM = 333;
  48.  
  49.  
  50.     public MyRecyclerAdapter(List<MyGarbageModel> myData, int foundedQ, int cleanedQ) {
  51.         this.items = myData;
  52.         this.foundedQuantity = foundedQ;
  53.         this.cleanedQuantity = cleanedQ;
  54.     }
  55.  
  56.     public void setMyData(List<MyGarbageModel> data) {
  57.         this.items.clear();
  58.         this.items.addAll(data);
  59.  
  60.     }
  61.  
  62.     @Override
  63.     public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int type) {
  64.         //if our position is one of our items (this comes from getItemViewType(int position) below)
  65.         if(type == TYPE_ITEM) {
  66.             View view = LayoutInflater.from(viewGroup.getContext())
  67.                     .inflate(R.layout.list_item, viewGroup, false);
  68.             return new MyHolder(view,viewGroup.getContext());
  69.         }else{
  70.             FrameLayout frameLayout = new FrameLayout(viewGroup.getContext());
  71.             frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
  72.             return new HeaderFooterViewHolder(frameLayout,viewGroup.getContext());
  73.         }
  74.     }
  75.  
  76.  
  77.     @Override
  78.     public void onBindViewHolder(final RecyclerView.ViewHolder vh, int position) {
  79.         //check what type of view our position is
  80.         if(position < headers.size()){
  81.             View v = headers.get(position);
  82.             //add our view to a header view and display it
  83.             headerHolder = (HeaderFooterViewHolder) vh;
  84.             prepareHeaderFooter(headerHolder, v);
  85.         }else {
  86.              ((MyHolder) vh).setModelData(model);
  87.         }
  88.     }
  89.  
  90.  
  91.  
  92.     @Override
  93.     public int getItemCount() {
  94.         return headers.size() + items.size();
  95.     }
  96.  
  97.     private void prepareHeaderFooter(HeaderFooterViewHolder vh, View view){
  98.         try {
  99.             vh.base.removeAllViews();
  100.             vh.base.addView(view);
  101.             vh.initViews(view);
  102.         }catch (Exception e){
  103.             e.printStackTrace();
  104.         }
  105.     }
  106.  
  107.     @Override
  108.     public int getItemViewType(int position) {
  109.         if(position < headers.size()){
  110.             return TYPE_HEADER;
  111.         }
  112.         return TYPE_ITEM;
  113.     }
  114.  
  115.     //add a header to the adapter
  116.     public void addHeader(View header){
  117.         if(!headers.contains(header)){
  118.             headers.add(header);
  119.             notifyItemInserted(headers.size() - 1);
  120.         }
  121.     }
  122.  
  123.     public HeaderFooterViewHolder getHeaderHolder(){
  124.         return headerHolder;
  125.     }
  126.  
  127.     public class HeaderFooterViewHolder extends MyHolder {
  128.         FrameLayout base;
  129.      
  130.         HeaderFooterViewHolder(View itemView, Context context) {
  131.             super(itemView,context);
  132.             this.base = (FrameLayout) itemView;
  133.         }
  134.  
  135.         void initViews(View headerView) {
  136.  
  137.         }
  138.     }
  139.  
  140.     class MyHolder extends RecyclerView.ViewHolder {
  141.         MyHolder(View itemView, Context ctx) {
  142.             super(itemView);
  143.         }
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement