上一篇说到Recycleview的基本使用方法,使用后会发现,并没有像ListView一样有单条点击事件。这篇说到在上一篇基本使用的方法之上怎么设置点击监听:
在Adapter中声明一个接口,设置view的点击事件
//监听写法
public interface OnItemClickCallBack{
void OnItemClickListener(View view,int pos);
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
this.mRecyclerView=recyclerView;
}
//声明全局的回调接口 用于接收MainActivity传递过来的实例化接口
private OnItemClickCallBack onItemClickCallBack;
public void setOnItemClickCallBack(OnItemClickCallBack onItemClickCallBack){
this.onItemClickCallBack=onItemClickCallBack;
}
在Adapter中的onCreateViewHolder
//单条Item的布局
view=LayoutInflater.from(context).inflate(R.layout.item,parent,false);
ViewHolder viewHolder=new ViewHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickCallBack!=null){
onItemClickCallBack.OnItemClickListener(v,mRecyclerView.getChildAdapterPosition(v));
}
}
});
在MainActivity中
adapter.setOnItemClickCallBack(new MyAdapter.OnItemClickCallBack() {
@Override
public void OnItemClickListener(View view, int pos) {
Toast.makeText(MainActivity.this, "这是"+pos, Toast.LENGTH_SHORT).show();
}
});
}
欢迎批评指正