package vit.vithandbook.adapter; import android.content.Context; import android.graphics.drawable.GradientDrawable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import java.util.ArrayList; import vit.vithandbook.R; import vit.vithandbook.model.Article; /** * Created by pulkit on 09/07/2015. */ public class SearchListAdapter extends ArrayAdapter<Article> { Context context ; int[] colors; String mainCat = ""; int[] catColor; ArrayList<Article> objects ; onItemClickListener itemClickListener; public SearchListAdapter(Context context,int Rid,ArrayList<Article> objects) { super(context,Rid,objects); this.context = context ; colors = context.getResources().getIntArray(R.array.colors); this.objects = objects ; colors = context.getResources().getIntArray(R.array.colors); catColor = context.getResources().getIntArray(R.array.main_navigator_colors); } public void setData(ArrayList<Article> data) { clear(); addAll(data); notifyDataSetChanged(); } @Override public View getView(int position, View view, ViewGroup parent) { final SearchViewHolder holder ; final Article current = getItem(position); if(view == null) { view = LayoutInflater.from(context).inflate(R.layout.card_search,parent,false); holder = new SearchViewHolder(view); view.setTag(holder); } else holder = (SearchViewHolder)view.getTag(); int index = position%7; //holder.backMargin.setBackgroundDrawable(new ColorDrawable(holder.color = colors[index])); mainCat = current.mainCategory.substring(0, 2); holder.subCategory.setText(current.subCategory); holder.topic.setText(current.topic); switch(mainCat) { case "Ac": ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[0]); holder.mainCategory.setImageResource(R.drawable.ic_academics_box); //holder.backMargin.setBackgroundDrawable(new ColorDrawable(holder.color = catColor[0])); break; case "Co": ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[1]); holder.mainCategory.setImageResource(R.drawable.ic_college_box); break; case "Ho": ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[2]); holder.mainCategory.setImageResource(R.drawable.ic_hostels_box); break; case "St": ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[3]); holder.mainCategory.setImageResource(R.drawable.ic_student_organizations); break; case "Li": ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[4]); holder.mainCategory.setImageResource(R.drawable.ic_life_hacks); break; case "Ar": ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[5]); holder.mainCategory.setImageResource(R.drawable.ic_around_vit); break; default: ((GradientDrawable) holder.mainCategory.getBackground()).setColor(catColor[0]); holder.mainCategory.setImageResource(R.drawable.ic_academics_box); break; } holder.backMargin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View varg) { Log.e("Article Search", current.topic); itemClickListener.onItemClick(current.topic); } }); return view ; } public void setOnItemClickListener(onItemClickListener listener) { this.itemClickListener = listener; } public class SearchViewHolder { View rootView, backMargin; public int color; public RelativeLayout relativeLayout; public TextView topic , subCategory; public ImageView mainCategory; public SearchViewHolder(View view) { backMargin = view.findViewById(R.id.ll_search_card); topic = (TextView)view.findViewById(R.id.tv_topic); mainCategory = (ImageView)view.findViewById(R.id.tv_main_category); relativeLayout = (RelativeLayout)view.findViewById(R.id.rv_main); subCategory = (TextView)view.findViewById(R.id.tv_subtopic); rootView = view ; } } }