在Android中使用Kotlin声明和初始化视图的官方编码标准是什么?如果是基于具体情况的,你会使用什么情况?
我看到了这些方式:
//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{...}
您应该尝试Android数据绑定。这是标准的方法。根据新的体系结构组件,您不需要从代码中访问视图的实例,而是直接将数据绑定到XML中。新的体系结构标准遵循MVVM体系结构。
关于您的问题,考虑到代码的可读性和长度,三种选择中最好的一种是使用Kotlin扩展。也就是说,以下将是最好的方法(尽管我会给视图一个与kotlin命名标准匹配的ID(:
btnXmlTag.setOnClickListener {
...
}
您可以使用androidDataBinding并在"活动"中直接膨胀这些视图,而无需初始化。
只需要在gradle文件中添加这些语法。
dataBinding{enabled=true}
并且在布局文件中,父级应该在布局标签中