📅  最后修改于: 2023-12-03 15:02:50.909000             🧑  作者: Mango
你可能知道,Kotlin 是一种流行的跨平台编程语言,现在在日益增长的 Android 应用开发中越来越普遍。在 Android 应用程序中,访问布局组件是必不可少的,但是许多开发人员仅仅知道如何在 MainActivity 中实现这一点。但是,你可以在 MainActivity 之外的 Kotlin 文件中访问布局组件。在本文中,我们将探讨 Kotlin 中访问布局组件的其他方法。
View binding 是一个将布局文件中的视图绑定到代码中的方法。它的优点是速度快、类型安全和 Kotlin-friendly。要使用 view binding,请遵循以下步骤:
在 build.gradle 文件中,添加以下代码:
android {
...
buildFeatures {
viewBinding true
}
}
创建绑定类非常简单。在 MainActivity 之外的 Kotlin 文件中,使用以下代码创建绑定类:
val binding = ActivityMainBinding.inflate(layoutInflater)
要访问布局中的视图,请使用以下代码:
binding.button.setOnClickListener { // do something }
最重要的是,你无需担心布局中的视图是否存在,因为你已经绑定了它们。
findViewById 是另一种访问布局中的视图的方法。但是,这个方法有一些缺点:它很慢,类型不安全,而且代码很冗长。当你无法使用 view binding 时,才考虑使用 findViewById。
要使用 findViewById,请遵循以下步骤:
在 res/layout 文件夹下创建布局文件,然后在其中创建视图,例如 button。
在 MainActivity 的 onCreate() 方法中使用以下代码:
val button = findViewById<Button>(R.id.button)
要访问视图,请使用以下代码:
button.setOnClickListener { // do something }
当你需要找到多个视图时, findViewById 可能会变得更加冗长,所以最好使用 view binding。
这是在 Kotlin 中访问布局组件的两种方法:使用 view binding 和 findViewById。尽管 view binding 比 findViewById 更快、更类型安全和更可读,但有时你可能无法使用它。在这种情况下, findViewById 可能是唯一的选择。不管你使用哪种方法,都记得在布局文件中分配 ID。现在,你已经知道了如何在 MainActivity 之外的 Kotlin 文件中访问布局组件。