组装RecyclerView时就能够设置ItemClickListener,只不过这个Listener不是设置到RecyclerView上而是设置到Adapter
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MyViewHolder> {
private Context mContext;
private List<AbnormalEventsBean.ListBean> mArray;
private OnItemClickListener mOnItemClickListener = null;
//回调
public void setOnItemClickListener(OnItemClickListener listener) {
this.mOnItemClickListener = listener;}
public static interface OnItemClickListener {
void onItemClick(View view, int position);
}
public MessageAdapter(MessageActivity context, List<AbnormalEventsBean.ListBean> messageIssue) {
this.mContext = context;
this.mArray = messageIssue;
}
public void setData(List<AbnormalEventsBean.ListBean> data) {
this.mArray = data;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.item_activity, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public int getItemCount() {
if (mArray == null) {
return 0;
} else {
return mArray.size();
}
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv.setTag(position);
holder.tv.setText(mArray.get(position).getAbnormalEvent().getIssue())
}
class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.tv_context);
view.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(v, getLayoutPosition());
}
}
}
}