I had used RecyclerView
several times and also handled click listeners. But my question is that in RecyclerView Adapter
at which place setting the click listener is better, like in onCreateViewHolder()
or onBindViewHolder()
or in ViewHolder
class. Because, I know at any place we set we can achieve our functionality.
Asked
Active
Viewed 256 times
0

Nigam Patro
- 2,760
- 1
- 18
- 33
-
http://stackoverflow.com/questions/24471109/recyclerview-onclick – sumit singh Dec 02 '15 at 10:35
-
@sumitsingh I know this but as per my question which place will be better. – Nigam Patro Dec 02 '15 at 10:40
2 Answers
2
You can set click listener for multiple views in your container view for various purposes. Best approach if it is an item click to add listener to container view :
private final OnClickListener mOnClickListener = new MyOnClickListener();
@Override
public MyViewHolder onCreateViewHolder(final ViewGroup parent, final int position) {
View view = LayoutInflater.from(mContext).inflate(R.layout.containerViewItem, parent, false);
view.setOnClickListener(mOnClickListener);
return new MyViewHolder(view);
}
And implement onClick()
method for your mOnClickListener
.

Kenan Begić
- 1,228
- 11
- 21
-
I know this types of implementation but which will be better as per my question? – Nigam Patro Dec 02 '15 at 10:39
1
The onBindViewHolder method is called every time when you bind your view with data.So the best place is to set click listener inside onCreateViewHolder method.
private final OnClickListener mOnClickListener = new MyOnClickListener();
@Override
public ViewHolder onCreateViewHolder(final ViewGroup parent, final int position)
{
View view = LayoutInflater.from(mContext).inflate(R.layout.recycler_list_item, parent, false);
view.setOnClickListener(mOnClickListener);
return new ViewHolder(view);
}
@Override
public void onClick(final View view) {
}

sumit singh
- 588
- 1
- 5
- 20