Android Studio MainActivity.kt 无法引用 main_activity.xml 中的 ID

Android Studio MainActivity.kt can't reference ids in main_activity.xml

我是 Android Studio 的新手。我在main_activity.xml文件里写了一段简单的代码,用ids。但是当我尝试从我的 MainActivity.kt 文件中引用 ids 时。它显示错误 Unresolved reference: btnDatePicker 即未解决的错误。

我不知道哪里错了。这是我的 MainActivity.kt 文件的屏幕截图。如您所见,当我尝试调用 id btnDatePicker 时,它 returns 出错了。

这是我的 activity_main.xml 的屏幕截图,如您所见,我已经圈出了我要参考的特定 id

尝试重建项目,构建 -> 重建项目 我们有 2 个变体,我推荐它。我建议您使用 View Binding。因为 Koltin synthetic(只写 id 元素)已被弃用。

要在模块中启用视图绑定,请在模块级别 中将 viewBinding 构建选项设置为 true build.gradle文件,如下例所示:

android {
...
buildFeatures {
    viewBinding = true
}

}

用法

private lateinit var binding: ActivityMainBinding 
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding(layoutInflater)
val view = binding.root
setContentView(view)
}

然后使用您的 xml 元素

binding.btnDataPicker.setOnClickListener {
   ...
}

不能直接引用Id

一般情况下,可以使用以下代码绑定控件:

val button = findViewById<Button>(R.id.btnDatePicker)

如果你想直接使用id,我想这篇文章可以帮到你 View Binding

只需将其添加到插件 ID 'kotlin-android-extensions'

中的 gradle 文件中