kotlin 中现在findviewbyid 省略,是否还可以用 findviewbyid,或者还有什么其他方法
时间: 2024-04-17 13:26:52 浏览: 163
在 Kotlin 中,可以使用 findViewById 来查找视图,但是 Kotlin 推荐使用属性委托来自动查找视图,而不需要使用 findViewById。
在使用属性委托时,需要使用 Kotlin Android Extensions 或者 View Binding。
1. Kotlin Android Extensions:
Kotlin Android Extensions 是 Kotlin 提供的一个插件,它通过自动生成视图的属性来简化视图查找。
首先,在项目的 build.gradle 文件中添加以下依赖:
```kotlin
android {
...
androidExtensions {
experimental = true
}
}
```
然后,在布局文件中定义一个 id:
```xml
<TextView
android:id="@+id/myTextView"
...
/>
```
最后,在 Kotlin 代码中就可以直接使用该视图的属性了:
```kotlin
import kotlinx.android.synthetic.main.activity_main.*
// 在 Activity 中
myTextView.text = "Hello, Kotlin Android Extensions!"
// 在 Fragment 中
view.myTextView.text = "Hello, Kotlin Android Extensions!"
```
2. View Binding:
View Binding 是 Android Jetpack 提供的一种类型安全的视图查找方式。
首先,在项目的 build.gradle 文件中启用 View Binding:
```kotlin
android {
...
viewBinding {
enabled = true
}
}
```
然后,在布局文件中定义一个 id:
```xml
<TextView
android:id="@+id/myTextView"
...
/>
```
最后,在 Kotlin 代码中使用 View Binding 来查找视图:
```kotlin
import com.example.myapp.databinding.ActivityMainBinding
// 在 Activity 中
val binding = ActivityMainBinding.inflate(layoutInflater)
binding.myTextView.text = "Hello, View Binding!"
// 在 Fragment 中
val binding = FragmentMainBinding.bind(view)
binding.myTextView.text = "Hello, View Binding!"
```
这些是在 Kotlin 中查找视图的常用方法,可以根据个人偏好选择其中一种方式来使用。
阅读全文