android - 在 Kotlin 中为按钮设置 onClickListener 的更简单方法
问题描述
我有一个简单的按钮,我想为其设置一个 onclicklistener,我首先尝试了两种方法,findViewById
它们都可以正常工作,但是我们可以button
通过 if 直接从 kotlin 代码访问
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="232dp"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
科特林代码
这种方法效果很好
val btnClickMe = findViewById<Button>(R.id.button)
btnClickMe.setOnClickListener {
// do something
}
当我尝试通过 kotlin 代码中的 id 直接访问按钮时,它不起作用
button.setOnClickListener {
//do something
}
错误:未解决的参考按钮
我在尝试一些不可能的事情吗?如果没有关于如何解决此问题的任何建议,请
谢谢R
解决方案
当我尝试通过 kotlin 代码中的 id 直接访问按钮时,它不起作用
可能吗 ?
对,但是...
您通过能够直接引用组件而不使用 findViewById 来尝试实现的目标称为合成导入,它允许您执行此操作。问题是这些现在已弃用,您应该使用 viewBinding 或仅使用标准 findViewById
相关资料:
https://developer.android.com/topic/libraries/view-binding/migration
推荐阅读
- jquery - 我想在一个
- 标记如果
- 有活跃的班级
- r - 用 reshape2 转置数据和数据空气质量
- ansible - Ansible 上传大文件最佳实践
- javascript - 第二个 div 对象不会打开弹出窗口
- mercurial - 由于添加子仓库时出错,默认分支有多个头
- javascript - (Javascript) | interact.js 在多个 div 上捏缩放相同的类不起作用
- r - 在 Shiny R 中实现相互依赖的对象的正确方法是什么?
- matlab - 如何在 Matlab 中监控 GPU 使用情况
- javascript - 在nodejs中解压缩,转换和压缩大文件
- tensorflow-lite - 如何修复 ValueError:仅第一维支持无