private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)}
以及如何从XML引用任何ID
// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString
// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString
2条答案
按热度按时间clj7thdc1#
它需要kotlin-android-extensions,但已弃用。因此,最新的Android Studio可能不会将所需插件添加到您的build. gradle。您仍然可以通过手动将
apply plugin: 'kotlin-android-extensions'
添加到build.gradle来使用它(此外,您的kt文件中需要导入,但IDE会自动执行此操作),但不建议这样做。请改用视图绑定,如以下官方文档中所述:https://developer.android.com/topic/libraries/view-bindingryevplcw2#
如果您使用的是旧版本的Android Studio,然后可以使用
并导入Kotlin文件中的以下内容
那么您可以直接引用所有具有ID的视图。
但如果您使用的是最新版本的Android Studio,则(id 'kotlin-android-extensions)将无法工作,因为此方法已弃用。相反,我们可以做的是,在Gradle文件中添加以下代码。
以及
在Kotlin文件中执行以下操作(例如,对于每个XML文件,将生成一个绑定类-如果是activity_main. XML绑定类,则为ActivityMainBinding):
以及如何从XML引用任何ID
有关更多详细信息,请访问以下链接-https://developer.android.com/topic/libraries/view-binding/migration#groovy
https://developer.android.com/topic/libraries/view-binding#kotlin