fun Tryouts() {
var CheckBox1 : CheckBox = findViewById(R.id.ForwardBox) as CheckBox
CheckBox1.setChecked(false)
}
Run Code Online (Sandbox Code Playgroud)
我仍然是Kotlin的初学者,只学习了kotlin的基本工作,我无法引用任何Android小部件或在Android Studio中更改它的状态,无论是TextView还是CheckBox或RadioBox.
在所有情况下,findViewById的相同未解决参考错误...
我不知道我做错了什么,即使java转换输出相同的错误.
小智 10
这似乎是最容易摆脱的方法 findViewById ()
转到Build.Gradle(模块:应用程序)
添加以下行
apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)
之后来到你的Activity文件说多了 MainActivity.kt
有导入要导入单个视图
import kotlinx.android.synthetic.main.<layout_name>.<view_name>;
Run Code Online (Sandbox Code Playgroud)
要么
导入所有视图
import kotlinx.android.synthetic.main.<layout_name>.*;
Run Code Online (Sandbox Code Playgroud)
示例:在您的布局中
<Checkbox id="@+/forwardBox" . . . />
Run Code Online (Sandbox Code Playgroud)
它在activity_main布局中然后导入为
import kotlinx.android.synthetic.main.activity_main.forwardBox;
Run Code Online (Sandbox Code Playgroud)
所以在你的函数或类中直接使用它
forwardBox.isChecked = false
Run Code Online (Sandbox Code Playgroud)
在 Kotlin 中,您不需要使用findViewById,只需使用 id ForwardBoxfrom kotlinx.android.synthetic.<your layout name>。kotlin 会自动找到代码中所有使用过的元素,并将其分配给与 layout(xml) 中的 id 相同的变量名称。
例如:
fun init(){
ForwardBox.isChecked = false
}
Run Code Online (Sandbox Code Playgroud)
fun Tryouts() {
val checkBox = findViewById(R.id.ForwardBox) as CheckBox
checkBox.isChecked = false
}
Run Code Online (Sandbox Code Playgroud)
无论如何,请考虑用小写字母定义 ID,并用下划线分隔,例如:
val checkBox = findViewById(R.id.forward_box) as CheckBox
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11749 次 |
| 最近记录: |