I'm currently learning butterknife, and I need to bind specific @OnClicks on different views generated by my customer adapter. How do I go about with this?
I've seen an answer in one of the questions here saying that he uses '@onclick' inside the 'ViewHolder'. I'm not sure how to implement this exactly. Any ideas?
Thanks!
Imagine you have a ViewHolder like this.
static class ViewHolder {
    @InjectView(R.id.user_name)
    TextView userName;
    @InjectView(R.id.user_title)
    TextView userTitle;
    public ViewHolder(View view) {
        ButterKnife.inject(this, view);
    }
}
You can bind events in your adapters getView method for each view in your holder.
 @Override
public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    if (convertView != null) {
        holder = (ViewHolder) convertView.getTag();
    } else {
        convertView = LayoutInflater.from(mContext).inflate(
                R.layout.your_row_layout, parent, false);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
    }
   holder.userName.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Your stuff here
        }
    });
    holder.userTitle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           //Your stuff here  
        }
    });
    return convertView;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With