Created
July 26, 2017 05:05
-
-
Save talhahasanzia/0ae354466bf27e8000ceaecd3a7d622a to your computer and use it in GitHub Desktop.
RecyclerView Adapter with onClick listener
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 ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ViewHolder> { | |
public interface OnItemClickListener { | |
void onItemClick(ContentItem item); | |
} | |
private final List<ContentItem> items; | |
private final OnItemClickListener listener; | |
public ContentAdapter(List<ContentItem> items, OnItemClickListener listener) { | |
this.items = items; | |
this.listener = listener; | |
} | |
@Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_item, parent, false); | |
return new ViewHolder(v); | |
} | |
@Override public void onBindViewHolder(ViewHolder holder, int position) { | |
holder.bind(items.get(position), listener); | |
} | |
@Override public int getItemCount() { | |
return items.size(); | |
} | |
static class ViewHolder extends RecyclerView.ViewHolder { | |
private TextView name; | |
private ImageView image; | |
public ViewHolder(View itemView) { | |
super(itemView); | |
name = (TextView) itemView.findViewById(R.id.name); | |
image = (ImageView) itemView.findViewById(R.id.image); | |
} | |
public void bind(final ContentItem item, final OnItemClickListener listener) { | |
name.setText(item.name); | |
Picasso.with(itemView.getContext()).load(item.imageUrl).into(image); | |
itemView.setOnClickListener(new View.OnClickListener() { | |
@Override public void onClick(View v) { | |
listener.onItemClick(item); | |
} | |
}); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment