Skip to content

Instantly share code, notes, and snippets.

@buildbro
Created August 6, 2019 22:34
Show Gist options
  • Save buildbro/54b33c3c738fc8c96ed99f73cabfbecc to your computer and use it in GitHub Desktop.
Save buildbro/54b33c3c738fc8c96ed99f73cabfbecc to your computer and use it in GitHub Desktop.
public class DealAdapter extends RecyclerView.Adapter<DealAdapter.DealViewHolder> {
private List<TravelDeal> mDealList;
private RecyclerViewClickListener listener;
public DealAdapter(List<TravelDeal> mDealList, RecyclerViewClickListener listener) {
this.mDealList = mDealList;
this.listener = listener;
}
@NonNull
@Override
public DealViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_deals, viewGroup, false);
return new DealViewHolder(view, listener);
}
@Override
public void onBindViewHolder(@NonNull DealViewHolder holder, int i) {
TravelDeal travelDeal = mDealList.get(i);
holder.titleTextView.setText(travelDeal.getTitle());
holder.descriptionTextView.setText(travelDeal.getDescription());
holder.priceTextView.setText(travelDeal.getPrice());
if (travelDeal.getImageUrl() != null) {
Picasso.get().load(travelDeal.getImageUrl()).into(holder.dealPhoto);
}
}
@Override
public int getItemCount() {
return mDealList.size();
}
//Here is our ViewHolder that initialise all the views we are interested in
public class DealViewHolder extends RecyclerView.ViewHolder {
TextView titleTextView, descriptionTextView, priceTextView;
ImageView dealPhoto;
public DealViewHolder(@NonNull View itemView, final RecyclerViewClickListener listener) {
super(itemView);
titleTextView = itemView.findViewById(R.id.title_text_view);
descriptionTextView = itemView.findViewById(R.id.description_text_view);
priceTextView = itemView.findViewById(R.id.price_text_view);
dealPhoto = itemView.findViewById(R.id.deal_image_view);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.onRowClicked(getAdapterPosition());
}
}
});
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment