RecycleView点击事件

基本使用请看上一篇RecyclerView的基本使用。

在为RecycleView设置点击事件时,发现RecycleView没有像ListView那样有setOnItemClickListener的方法,需要自己来实现。

1.声明接口

public interface ItemClickListener {
    void OnItemClick(View v, int position);
}

2.在adapter中声明接口变量,并设置set方法

ItemClickListener mItemClickListener;

public void setOnItemClickListener(ItemClickListener itemClickListener) {
    mItemClickListener = itemClickListener;
}

在onBindViewHolder方法中将当前是第几个item设置到 itemView 的tag中
@Override
public void onBindViewHolder(ListHolder holder, int position) {
    holder.refreshDataUI(lists.get(position));
    holder.itemView.setTag(position);
}

3.在ViewHolder设置回调事件

将view的点击事件

public class ListHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView textView;

    public ListHolder(View itemView) {
        super(itemView);
        textView = (TextView) itemView.findViewById(R.id.text);
        itemView.setOnClickListener(this);
    }

    public void refreshDataUI(String data) {
        textView.setText(data);
    }

    @Override
    public void onClick(View v) {
        if (mItemClickListener != null) {
            mItemClickListener.OnItemClick(v, (Integer) itemView.getTag());
        }

    }
}
RecycleView点击事件_第1张图片
GIF.gif

你可能感兴趣的:(RecycleView点击事件)