关于在外部拿到RecyclerView的viewholder的几种方式

在Android开发中,经常需要从外部获取RecyclerView的ViewHolder以动态更新UI。本文探讨了通过getChildViewHolder()和onBindViewHolder()方法来实现这一需求。强调了getChildCount()返回可见视图的数量,而getItemCount()返回总项数。还提出了在初始化adapter时通过设置外部变量来控制不同item的操作,以避免空指针异常。
摘要由CSDN通过智能技术生成

      在实际开发中,我们常常碰到这样的需求,需要在外部拿到RecyclerView 中的viewHoler,从而动态的修改UI,在RecyclerView中,我们需要自己封装点击事件,一般的做法是在recyclerview每一次bind的时候我们给viewholder的itemview注册监听事件,典型写法如下:

    @Override
    public void onBindViewHolder(final MyHolder holder, final int position) {
        Log.i("bind", list.size() + "");
        holder.tv.setText(list.get(position));
        if(listener != null)
        {
          holder.itemView.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  listener.onclick(holder,position,list.get(position));
              }
          });
        }
    }

       因为点击事件的监听写在这个函数中,而这个函数的参数刚好又有ViewHolder,所以我们可以拿到点击的那一项的viewholder,从而动态的修改那一项的UI;那么如果我们想要从adapter外部拿到其他项的viehodler。我们应该怎么做呢

     

首先,我们来区分两个函数

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值