RecyclerView item 点击事件设置

用过Recyclerview的同学应该知道。 RecyclerView不再负责Item视图的布局及显示,所以RecyclerView也没有为Item开放OnItemClick等点击事件,这就需要开发者自己实现。在调研过程中,发现有同学修改RecyclerView源码来实现Item的点击监听,但认为这不是一个优雅的解决方案。

实现思路:因为ViewHolder我们可以拿到每个Item的根布局,所以如果我们为根布局设置单独的OnClick监听并将其开放给Adapter,那不就可以在组装RecyclerView时就能够设置ItemClickListener,只不过这个Listener不是设置到RecyclerView上而是设置到Adapter。

listener是设定到Adapter上的,所以Adapter就需要对外开放相关方法:

在ViewHolder中设置:

public void setOnClickM6ItemListener(IOnClickItemListener listener) {
   this.mOnClickItemListener = listener;
}

public IOnClickItemListener getOnClickM6ItemListener() {
   return mOnClickItemListener;
}
Adapter的onCreateViewHolder是负责实例化每个Item的视图,所以我在实例化视图时就将listener传递给ViewHolder。

最后就是组装RecyclerView时根据需求设定点击监听了:

mSourceList = new ArrayList<DataSource>();
mAdapter = new YouSchoolAdapter(mSourceList);
mAdapter.setOnClickItemListener(this);
 
在Activity中我们实现了接口方法:
 
/**
    * item
    */
   @Override
   public void onClickItem(View view,int position) {
      
   }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值