在 CustomAdapter 中的 ViewHolder 中使用黄油刀 @OnClick [英] butterknife @OnClick inside ViewHolder in CustomAdapter

查看:20
本文介绍了在 CustomAdapter 中的 ViewHolder 中使用黄油刀 @OnClick的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在学习黄油刀,我需要在我的客户适配器生成的不同视图上绑定特定的@OnClicks.我该怎么做?

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?

我在这里的一个问题中看到了一个答案,说他在ViewHolder"中使用了@onclick".我不确定如何准确地实现这一点.有什么想法吗?

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?

谢谢!

推荐答案

想象一下你有一个这样的 ViewHolder.

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);
    }

}

您可以在适配器的 getView 方法中为持有者中的每个视图绑定事件.

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;

}

这篇关于在 CustomAdapter 中的 ViewHolder 中使用黄油刀 @OnClick的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆