在网上百度到了一些方法,基本大同小异,于是根据自己的理解实现了这个功能。
- 首先在
adapter
中新建一个回调接口
,然后添加一个私有属性
并设置上setter方法
:
public class MytAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
...
//私有属性
private OnItemClickListener onItemClickListener = null;
//setter方法
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
//回调接口
public interface OnItemClickListener {
void onItemClick(View v, Note note, int position);
}
...
}
- 然后在重写的
onBindViewHolder
方法中添加上点击事件即可:
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//实现点击效果
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(v, note, position);
}
}
});
}
- 使用方法:
adapter.setOnItemClickListener
即可添加点击事件。
MyAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {
@Override
public void onItemClick(View v, Note note, int position) {
}
});
网友评论