版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/88226356
1、首先在adapter类外定义一个OnRecyclerItemClickListener的接口
public interface OnRecyclerItemClickListener {
//RecyclerView的点击事件,将信息回调给view
void onItemClick(int Position, List<IntegralMenu.DataBean> dataBeanList);
}
2、接下来就是绑定监听事件了,因为官方没有提供点击的监听,所以我们这个监听方法就不能绑定在recyclerview对象上,因此,我们将这个步骤转移到adapter中进行
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<newsBean> mDataBeanList;
//声明自定义的监听接口
private OnRecyclerItemClickListener monItemClickListener;
//提供set方法供Activity或Fragment调用
public void setRecyclerItemClickListener(OnRecyclerItemClickListener listener){
monItemClickListener=listener;
}
class ViewHolder extends RecyclerView.ViewHolder{
TextView integralContent;
TextView integralChange;
TextView integralTime;
public ViewHolder(View view){
super(view);
integralContent=view.findViewById(R.id.integral_content);
integralChange=view.findViewById(R.id.change_integral);
integralTime=view.findViewById(R.id.integral_time);
//将监听传递给自定义接口
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (monItemClickListener!=null){
monItemClickListener.onItemClick(getAdapterPosition(),mDataBeanList);
}
}
});
}
}
......
}
3、在Activity或Fragmen中的调用
adapter.setRecyclerItemClickListener(new OnRecyclerItemClickListener() {
@Override
public void onItemClick(int Position, List<IntegralMenu.DataBean> dataBeanList) {
//具体的操作逻辑
mIntegralPresenter.onItemClick(Position,dataBeanList);
}
});