Reputation: 1
My RecyclerView
has a CardView
and my CardView
contains one GridView
and some other TextViews
.
public MyCardViewHolder(View view) {
super(view);
this.view=view;
gridView = (GridView) view.findViewById(R.id.gridView);
nickNameTextView =(TextView) view.findViewById(R.id.card_nickname_textView);
...
}
I set a OnClickListener
on the ViewHolder
but when I click inside GridView
, the click event never gets fired. Here is the code for the OnClickListener
:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
});
}
Thanks for the help.
Upvotes: 0
Views: 178
Reputation: 126
Following code you can easily proceed your click events with any element :)
public class HomeRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener {
private List<String> mItemList;
RecyclerView mRecyclerView;
Context context;
HomeItemViewHolder mHomeItemholder;
public HomeRecyclerAdapter(List<String> itemList) {
mItemList = itemList;
}
public class HomeItemViewHolder extends RecyclerView.ViewHolder {
ImageView mImage;
public HomeItemViewHolder(View parent) {
super(parent);
mImage = (ImageView) parent.findViewById(R.id.Image);
}
}
public HomeRecyclerAdapter(List<String> itemList, Context context, RecyclerView mRecyclerView) {
this.mItemList = itemList;
this.context = context;
this.mRecyclerView = mRecyclerView;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
Context context = parent.getContext();
final View view = LayoutInflater.from(context).inflate(R.layout.item_home, parent, false);
return new HomeItemViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
mHomeItemholder = (HomeItemholder) viewHolder;
mHomeItemholder.mImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Handle your code
}
});
}
public int getBasicItemCount() {
return mItemList == null ? 0 : mItemList.size();
}
@Override
public int getItemCount() {
return getBasicItemCount(); // header
}
}
Upvotes: 1