Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.leavingstone.movla.util.adapter;
- import android.content.Context;
- import android.support.percent.PercentLayoutHelper;
- import android.support.percent.PercentRelativeLayout;
- import android.support.v7.widget.AppCompatImageView;
- import android.support.v7.widget.CardView;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.RelativeLayout;
- import com.bumptech.glide.Glide;
- import com.bumptech.glide.load.engine.DiskCacheStrategy;
- import com.leavingstone.movla.R;
- import com.leavingstone.movla.view.custom_components.MyImageView;
- import com.leavingstone.movla.view.fragments.list_fragment.custom_views.ImageLoaderAsyncTask;
- import com.leavingstone.movla.models.MyGarbageModel;
- import com.leavingstone.movla.global.application.MyApplication;
- import com.leavingstone.movla.view.custom_components.CTextView;
- import com.leavingstone.movla.view.custom_components.MySeekBar;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Created by Jemo on 5/23/16.
- */
- public class MyRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
- private Context context;
- private int foundedQuantity;
- private int cleanedQuantity;
- private HeaderFooterViewHolder headerHolder;
- //our items
- private List<MyGarbageModel> items;
- //headers
- private List<View> headers = new ArrayList<>();
- //footers
- // List<View> footers = new ArrayList<>();
- private static final int TYPE_HEADER = 111;
- private static final int TYPE_ITEM = 333;
- public MyRecyclerAdapter(List<MyGarbageModel> myData, int foundedQ, int cleanedQ) {
- this.items = myData;
- this.foundedQuantity = foundedQ;
- this.cleanedQuantity = cleanedQ;
- }
- public void setMyData(List<MyGarbageModel> data) {
- this.items.clear();
- this.items.addAll(data);
- }
- @Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int type) {
- //if our position is one of our items (this comes from getItemViewType(int position) below)
- if(type == TYPE_ITEM) {
- View view = LayoutInflater.from(viewGroup.getContext())
- .inflate(R.layout.list_item, viewGroup, false);
- return new MyHolder(view,viewGroup.getContext());
- }else{
- FrameLayout frameLayout = new FrameLayout(viewGroup.getContext());
- frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
- return new HeaderFooterViewHolder(frameLayout,viewGroup.getContext());
- }
- }
- @Override
- public void onBindViewHolder(final RecyclerView.ViewHolder vh, int position) {
- //check what type of view our position is
- if(position < headers.size()){
- View v = headers.get(position);
- //add our view to a header view and display it
- headerHolder = (HeaderFooterViewHolder) vh;
- prepareHeaderFooter(headerHolder, v);
- }else {
- ((MyHolder) vh).setModelData(model);
- }
- }
- @Override
- public int getItemCount() {
- return headers.size() + items.size();
- }
- private void prepareHeaderFooter(HeaderFooterViewHolder vh, View view){
- try {
- vh.base.removeAllViews();
- vh.base.addView(view);
- vh.initViews(view);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- @Override
- public int getItemViewType(int position) {
- if(position < headers.size()){
- return TYPE_HEADER;
- }
- return TYPE_ITEM;
- }
- //add a header to the adapter
- public void addHeader(View header){
- if(!headers.contains(header)){
- headers.add(header);
- notifyItemInserted(headers.size() - 1);
- }
- }
- public HeaderFooterViewHolder getHeaderHolder(){
- return headerHolder;
- }
- public class HeaderFooterViewHolder extends MyHolder {
- FrameLayout base;
- HeaderFooterViewHolder(View itemView, Context context) {
- super(itemView,context);
- this.base = (FrameLayout) itemView;
- }
- void initViews(View headerView) {
- }
- }
- class MyHolder extends RecyclerView.ViewHolder {
- MyHolder(View itemView, Context ctx) {
- super(itemView);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement