First of all set onclickListener to each view you want to be clicked. Good place to do it in viewHolderConstructor. eg
public class GalleryManyViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.im_img) RoundedCornersImageView imImg;
@BindView(R.id.tv_title) MyTextView tvTitle;
@BindView(R.id.tv_label) MyTextView tvLabel;
@BindView(R.id.tv_date) MyTextView tvDate;
@BindView(R.id.im_gallery_one) RoundedCornersImageView imGalleryOne;
@BindView(R.id.im_gallery_two) RoundedCornersImageView imGalleryTwo;
@BindView(R.id.im_gallery_three) RoundedCornersImageView imGalleryThree;
@BindView(R.id.im_gallery_four) RoundedCornersImageView imGalleryFour;
@BindView(R.id.tv_more) MyTextView tvMore;
@BindView(R.id.root) RelativeLayout root;
public GalleryManyViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
view.setOnClickListener(onClickListener);
imGalleryOne.setOnClickListener(onClickListener);
imGalleryTwo.setOnClickListener(onClickListener);
imGalleryThree.setOnClickListener(onClickListener);
imGalleryFour.setOnClickListener(onClickListener);
view.setTag(this);
}
Generally you do not need to make anything specific with those view, like setting tags (Also some usefull libraries like Glied, which sets its own tags to imageviews will malfunction if you set you own tag. In on clickListener find adapter position of the view to be able to retrive the corresponding data
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override public void onClick(View v) {
View view = v;
View parent = (View) v.getParent();
while (!(parent instanceof RecyclerView)){
view=parent;
parent = (View) parent.getParent();
}
int position = recyclerView.getChildAdapterPosition(view);
}
as described here
Then but checking views id, evaluete what you want to do
switch (v.getId()) {
case R.id.im_gallery_one: {
p = 0;
}
break;
case R.id.im_gallery_two: {
p = 1;
}
break;
case R.id.im_gallery_three: {
p = 2;
}
break;
case R.id.im_gallery_four: {
p = 3;
}
break;
}