Recycleview的点击事件

来源:互联网 发布:java工程师一般年薪 编辑:程序博客网 时间:2024/05/22 04:57

上一篇说到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();                    }                });            }

欢迎批评指正

0 0