ViewBinding 找不到控件 Id

1. ViewBinding 配置

Gradle 配置

在 build.gradle 文件中添加

plugins {
    ....
    id 'kotlin-android'
}

android{

   ......
  
   viewBinding{
        enabled = true
    }
}

对于版本高的 AndroidStudio:

plugins {
    ....
    id 'kotlin-android'
}

android{

   ......
  
   buildFeatures { 
      viewBinding = true 
   }
}

配置完成后,每个布局文件都会对应生成 Binding 类,命名是将 XML文件 的名称转换为驼峰命名,并在末尾添加 Binding。

2. 使用ViewBinding

在 Activity 中延迟初始化 ViewBinding,在 onCreate 通过 对应布局文件的 binding 类调用 inflate 方法加载布局:

class MainActivity : AppCompatActivity() {

    private lateinit var viewBinding:ViewBinding

    private val userDao: UserDao by lazy{
        AppDataBase.getInstance(baseContext).userDao()
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        viewBinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(viewBinding.root)
    }
}

如上所示完成后,调用控件时发现爆红

在这里插入图片描述
是因为延迟初始化变量的类型使用错误,应该是对应布局文件的 Binding 类,而不是 ViewBinding

private lateinit var viewBinding:ActivityMainBinding

记录一下这个每次都犯错的地方…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值