1.适配器实现这个接口
implements View.OnClickListener
2.自定义一个接口
public static interface OnItemClickListener {
void onItemClick(View view , int position);
}
3.声明这个接口
private OnItemClickListener mOnItemClickListener = null;
4.在onCreateViewHolder中添加每个item的点击事件。
//将创建的itemView注册点击事件
view.setOnClickListener(this);
5.在onBindViewHolder方法中进行setTag的设置,这样才能得到item的位置。
//将position保存在itemView的Tag中,以便点击时进行获取
holder.itemView.setTag(position);
6.然后在onClick方法中进行position的获取
/**
* Method name : onClick
* Specific description :继承View.OnClickListener 接口,实现这个点击方法
*@param view
*@return void
*/
@Override
public void onClick(View view) {
if (mOnItemClickListener != null) {
view.getId();
//注意这里使用getTag方法获取position
mOnItemClickListener.onItemClick(view,(int)view.getTag());
}
}
7.最后暴露给外面的调用者,定义一个设置Listener的方法()
//最后暴露给外面的调用者,定义一个设置Listener的方法():
public void setOnItemClickListener(OnItemClickListener listener) {
this.mOnItemClickListener = listener;
}
8.在activity中用:
(每次删除item,都会重新加载一次onBindViewHolder()方法,重新排布一下子item的position)
mData.remove(pos);
mSampleWordsAdapter.notifyItemRemoved(viewHolder.getAdapterPosition());
//每次删除item,都会重新加载一次onBindViewHolder()方法,重新排布一下子item的position
//必须调用这行代码
mSampleWordsAdapter.notifyItemRangeChanged(pos,mData.size());