首页 > 解决方案 > 使用 Kotlin 在 android 中初始化视图的编码标准

问题描述

使用 Kotlin 在 Android 中声明和初始化视图的官方编码标准是什么?如果是个案基础,你会使用什么情况?

我见过这些方法:

//Kotlin extensions
onCreate
...
btn_xml_tag.setOnClickListener {
        ...
} 

//More like java
private lateinit var button : Button 
...
onCreate
...
button = findViewById(R.id.button)
button?.setOnClickListener{...}

//Lazy
private val button : Button by lazy {
    findViewById(R.id.button_view) as Button
}
...
onCreate
...
button.setOnClickListener{...}

标签: androidkotlin

解决方案


您应该尝试Android Data Binding。这是标准的做法。根据新的架构组件,您不需要从代码中访问视图的实例,而是直接在 XML 中绑定数据。新的架构标准遵循 MVVM 架构。

关于您的问题,考虑到代码的可读性和长度,三个选项中最好的是使用 Kotlin 扩展。也就是说,以下是最好的方法(尽管我会给视图一个与 kotlin 命名标准匹配的 ID):

btnXmlTag.setOnClickListener {
        ...
} 

推荐阅读