Example of click listener in RecyclerView
static class ActionItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
@InjectView(R.id.actionItemLayout) LinearLayout actionItemLayout;
@InjectView(R.id.actionIcon) ImageView actionIcon;
@InjectView(R.id.actionTitle) TextView actionTitle;
OrganizationContactAction mItem; //Keep item ref for clickevents
private ActionItemViewHolderClicks listener; //click event listener
public interface ActionItemViewHolderClicks {
void onActionClicked(OrganizationContactAction action);
}
public ActionItemViewHolder(View view, ActionItemViewHolderClicks listener) {
super(view);
ButterKnife.inject(this, view);
this.listener = listener;
actionItemLayout.setClickable(true);
actionItemLayout.setOnClickListener(this);
}
@Override
public void onClick(View view) {
listener.onActionClicked(mItem);
}
}
And using it to get click events in onCreateViewHolder:
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (TYPE_ACTION == viewType) {
final View view = LayoutInflater.from(context).inflate(R.layout.orgdetail_action_item, parent, false);
return new ActionItemViewHolder(view, new ActionItemViewHolder.ActionItemViewHolderClicks() {
@Override
public void onActionClicked(OrganizationContactAction action) {
EventBus.getDefault().post(new ActionClickedEvent(action));
}
});
}
return null;
}