Skip to content

Instantly share code, notes, and snippets.

@aws1994
Created May 24, 2018 13:19
Show Gist options
  • Save aws1994/cd5fea1084d2f700fa8d0a73083b064f to your computer and use it in GitHub Desktop.
Save aws1994/cd5fea1084d2f700fa8d0a73083b064f to your computer and use it in GitHub Desktop.
package com.demotxt.myapp.myapplication.adapters;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.demotxt.myapp.myapplication.activities.AnimeActivity;
import com.demotxt.myapp.myapplication.model.Anime;
import com.demotxt.myapp.myapplication.R ;
import java.util.List;
/**
* Created by Aws on 11/03/2018.
*/
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
private Context mContext ;
private List<Anime> mData ;
RequestOptions option;
public RecyclerViewAdapter(Context mContext, List<Anime> mData) {
this.mContext = mContext;
this.mData = mData;
// Request option for Glide
option = new RequestOptions().centerCrop().placeholder(R.drawable.loading_shape).error(R.drawable.loading_shape);
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view ;
LayoutInflater inflater = LayoutInflater.from(mContext);
view = inflater.inflate(R.layout.anime_row_item,parent,false) ;
final MyViewHolder viewHolder = new MyViewHolder(view) ;
viewHolder.view_container.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(mContext, AnimeActivity.class);
// sending data process
i.putExtra("anime_name",mData.get(viewHolder.getAdapterPosition()).getName());
i.putExtra("anime_description",mData.get(viewHolder.getAdapterPosition()).getDescription());
i.putExtra("anime_studio",mData.get(viewHolder.getAdapterPosition()).getStudio());
i.putExtra("anime_category",mData.get(viewHolder.getAdapterPosition()).getCategorie());
i.putExtra("anime_nb_episode",mData.get(viewHolder.getAdapterPosition()).getNb_episode());
i.putExtra("anime_rating",mData.get(viewHolder.getAdapterPosition()).getRating());
i.putExtra("anime_img",mData.get(viewHolder.getAdapterPosition()).getImage_url());
mContext.startActivity(i);
}
});
return viewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv_name.setText(mData.get(position).getName());
holder.tv_rating.setText(mData.get(position).getRating());
holder.tv_studio.setText(mData.get(position).getStudio());
holder.tv_category.setText(mData.get(position).getCategorie());
// Load Image from the internet and set it into Imageview using Glide
Glide.with(mContext).load(mData.get(position).getImage_url()).apply(option).into(holder.img_thumbnail);
}
@Override
public int getItemCount() {
return mData.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv_name ;
TextView tv_rating ;
TextView tv_studio ;
TextView tv_category;
ImageView img_thumbnail;
LinearLayout view_container;
public MyViewHolder(View itemView) {
super(itemView);
view_container = itemView.findViewById(R.id.container);
tv_name = itemView.findViewById(R.id.anime_name);
tv_category = itemView.findViewById(R.id.categorie);
tv_rating = itemView.findViewById(R.id.rating);
tv_studio = itemView.findViewById(R.id.studio);
img_thumbnail = itemView.findViewById(R.id.thumbnail);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment