Reclcerview的点击事件

RecyclerView的点击事件一般在其对应的adpater类中完成,通过添加接口去调用,在activity中或者fragment中通过对adpater中的接口实例化并重写接口中的函数,通过构造函数传入adpater类中,当点击RecyclerView中的一项内容时通过这个实例的接口去调用activity或fragment中的重写函数。

以以前的微信消息界面的内容为例Android studio简易微信界面-CSDN博客(其中的RecyclerView内容经过修改但不影响)

1.在Myadpater类中添加接口,声明接口的对象listener,并添加构造方法

private onItemClickListener listener;

//添加接口
public interface onItemClickListener{
        void onItemClick(int position);
    }

//创建构造方法
 public void setonItemClickListener(onItemClickListener listener) {
        this.listener = listener;
    }

2.在其中的MyAdpater类的onBindViewHolder方法中添加代码对每一项item设置点击事件

holder.itemView.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("SuspiciousIndentation")
            @Override
            public void onClick(View view) {
                if(listener != null) {
                    int position = holder.getAdapterPosition();
                    if(position != RecyclerView.NO_POSITION) //点击的位置是否为空
                    listener.onItemClick(position);
                }
            }
        });

3.在对应的activity或fragment中实例化接口,点击后可以跳转到以一个activity

myAdpater.setonItemClickListener(new MyAdpater.onItemClickListener() {
            @Override
            public void onItemClick(int position) {
                PersonBean bean = mDatas.get(position);//可以不要
                String name = bean.getName();//可以不要
                Intent intent = new Intent(getActivity(),MessageActivity.class);
                intent.putExtra("yjc",name);//可以不要
                if(getActivity() != null) {
                    getActivity().startActivity(intent);
                }

            }
        });

 4.运行结果

任意点击一个联系人(item)跳转到另一个activity

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值