Skip to content

Instantly share code, notes, and snippets.

@alikrc
Last active August 7, 2017 15:40
Show Gist options
  • Save alikrc/9b79944acc69f7f617e3cff03d11a9cc to your computer and use it in GitHub Desktop.
Save alikrc/9b79944acc69f7f617e3cff03d11a9cc to your computer and use it in GitHub Desktop.
example recyclerview with custom viewholder
public class HotelRecyclerVİewAdapter extends RecyclerView.Adapter<HotelRecyclerVİewAdapter.CustomViewHolder> {
private List<Hotel> mHotelList;
private Context mContext;
private OnItemClickListener onItemClickListener;
public HotelRecyclerVİewAdapter(Context context, List<Hotel> list, OnItemClickListener onItemClickListener) {
this.mContext = context;
this.mHotelList = list;
this.onItemClickListener = onItemClickListener;
}
@Override
public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.layout_hotels_recyclerview_item, parent, false);
CustomViewHolder viewHolder = new CustomViewHolder(view, onItemClickListener);
return viewHolder;
}
@Override
public void onBindViewHolder(CustomViewHolder holder, int position) {
final Hotel hotel = mHotelList.get(position);
//Download image using picasso library
if (!TextUtils.isEmpty(hotel.getImage())) {
Picasso.with(mContext).load(hotel.getImage())
.error(R.drawable.hotel_thumbnail_placeholder)
.placeholder(R.drawable.hotel_thumbnail_placeholder)
.into(holder.ivThumbnail);
}
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onItemClick(hotel);
}
};
holder.tvHotelName.setText(hotel.getName());
}
@Override
public int getItemCount() {
return mHotelList.size();
}
class CustomViewHolder extends RecyclerView.ViewHolder {
protected ImageView ivThumbnail;
protected TextView tvHotelName;
public CustomViewHolder(View itemView, OnItemClickListener onItemClickListener) {
super(itemView);
this.ivThumbnail = (ImageView) itemView.findViewById(R.id.ivThumbnail);
this.tvHotelName = (TextView) itemView.findViewById(R.id.tvHotelName);
if (onItemClickListener != null)
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
final Hotel hotel = mHotelList.get(position);
//onItemClickListener.onItemClick(hotel);
}
});
}
}
public OnItemClickListener getOnItemClickListener() {
return onItemClickListener;
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(Hotel item);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment