package pasta.music.adapters; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; 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.TextView; import com.bumptech.glide.Glide; import java.util.List; import pasta.music.R; import pasta.music.data.CategoryListData; import pasta.music.fragments.CategoryFragment; public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.ViewHolder> { AppCompatActivity activity; List<CategoryListData> list; public CategoryAdapter(AppCompatActivity activity, List<CategoryListData> list) { this.activity = activity; this.list = list; } public void swapData(List<CategoryListData> list) { this.list = list; notifyDataSetChanged(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); return new ViewHolder(inflater.inflate(R.layout.category_item, null)); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { Glide.with(activity).load(list.get(position).categoryImage).into((ImageView) holder.v.findViewById(R.id.image)); ((TextView) holder.v.findViewById(R.id.title)).setText(list.get(position).categoryName); holder.v.findViewById(R.id.bg).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Bundle args = new Bundle(); args.putParcelable("category", list.get(holder.getAdapterPosition())); Fragment f = new CategoryFragment(); f.setArguments(args); activity.getSupportFragmentManager().beginTransaction().replace(R.id.fragment, f).addToBackStack(null).commit(); } }); } @Override public int getItemCount() { return list == null ? 0 : list.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { public View v; public ViewHolder(View v) { super(v); this.v = v; } } }