android - 使用 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{...}
解决方案
您应该尝试Android Data Binding。这是标准的做法。根据新的架构组件,您不需要从代码中访问视图的实例,而是直接在 XML 中绑定数据。新的架构标准遵循 MVVM 架构。
关于您的问题,考虑到代码的可读性和长度,三个选项中最好的是使用 Kotlin 扩展。也就是说,以下是最好的方法(尽管我会给视图一个与 kotlin 命名标准匹配的 ID):
btnXmlTag.setOnClickListener {
...
}
推荐阅读
- html - 背景图像不适用于过渡
- sql-server - “导入平面文件”向导无法检测列标题
- c# - 使用对撞机 C# 触发角色动画
- python - 更改类中的变量会导致全局变量也发生更改?
- python - 为什么类中的python函数默认使用“self”作为传入的第一个参数
- google-cloud-platform - 部署到最小节点大小为 0 的节点池?
- javascript - 无法在 Bootstrap 3 弹出窗口中显示 html
- java - 在 Spring Data Neo4j 中查询关系
- c++ - 断断续续的动画
- python - “AttributeError: 'Worksheet' object has no attribute 'worksheet'” 是什么意思?