彩云天气 APP 获取视图 view注意点---第一行代码

在彩云天气中 ,我们需要自己获取view视图 有两种方式

因为没有自动获取视图的插件

recyclerview有两种获取方式 

区别如下

  1. recyclerView: RecyclerView? = view?.findViewById(R.id.recyclerView)
    这种方式使用了可空类型(Nullable),即 RecyclerView?。它通过 view?.findViewById() 方法来获取视图,如果 view 为 null,那么 recyclerView 也会为 null。这种方式适用于当视图可能为空时的情况,例如在 Fragment 的生命周期早期或视图尚未创建时。

  2. val recyclerView = requireView().findViewById<RecyclerView>(R.id.recyclerView)
    这种方式使用了非空类型。requireView() 方法会立即返回非空的根视图,然后通过 findViewById() 方法获取 RecyclerView 视图。如果 RecyclerView 视图不存在,会抛出 NullPointerException 异常。这种方式适用于在 Fragment 的生命周期中确保视图已经创建的情况。

  3. 那种方式更好取决于具体的使用情况和代码的设计。一般来说,如果你确定视图在当前的生命周期阶段已经创建,并且视图不会为空,那么使用 requireView().findViewById() 是更加直观和简洁的方式。它能够在获取视图时提供非空的保证,避免了使用可空类型的繁琐处理。

    然而,如果你不确定视图的创建时机,或者需要在早期的生命周期阶段使用视图,那么使用 view?.findViewById() 可以更好地处理可能的空引用。这样,即使视图尚未创建,你也可以安全地处理并避免可能的空引用异常。

    总而言之,根据具体的场景和需求选择适当的获取视图的方式。如果你确定视图已经创建并且不会为空,那么使用 requireView().findViewById() 更简洁。如果对视图的创建时机不确定或需要处理可能的空引用,那么使用 view?.findViewById() 更安全。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值