Last active
August 7, 2017 15:40
-
-
Save alikrc/9b79944acc69f7f617e3cff03d11a9cc to your computer and use it in GitHub Desktop.
example recyclerview with custom viewholder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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