Android--RecyclerView的item添加点击事件

版权声明:本文为博主原创文章,转载请标明出处。 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);
            }
        });

猜你喜欢

转载自blog.csdn.net/chaoyu168/article/details/88226356
今日推荐