未解决的参考:Kotlin中的findViewById
fun Tryouts() { var CheckBox1 : CheckBox = findViewById(R.id.ForwardBox) as CheckBox CheckBox1.setChecked(false) }
我还是Kotlin的初学者,仅仅学习了kotlin的基本工作,我无法引用任何android小部件或者在Android Studio中更改它的状态,无论是TextView还是CheckBox或者RadioBox。
在所有情况下,findViewById的相同未解决的引用错误…
我不知道我在做什么错误,甚至是java转换输出相同的错误。
在Kotlin中,您不需要使用findViewById
,只需使用ForwardBox
id ForwardBox
kotlinx.android.synthetic.
。 您的代码中的所有使用的元素会自动find,并通过kotlin分配给与layout(xml)中的id相同的variables名称。
例如:
fun init(){ ForwardBox.isChecked = false }
fun Tryouts() { val checkBox = findViewById(R.id.ForwardBox) as CheckBox checkBox.isChecked = false }
无论如何,考虑以小写字母分隔下划线来定义您的ID,例如:
val checkBox = findViewById(R.id.forward_box) as CheckBox
看来这是摆脱findViewById ()
最简单的方法
转到您的Build.Gradle(模块:应用程序)
添加以下行
apply plugin: 'kotlin-android-extensions'
- 然后它会要求你同步
- 然后按下同步
之后来到您的活动文件说它很多是MainActivity.kt
有导入要导入单个视图
import kotlinx.android.synthetic.main..;
要么
导入所有视图
import kotlinx.android.synthetic.main..*;
例如:在您的布局
它在activity_main
布局然后导入为
import kotlinx.android.synthetic.main.activity_main.forwardBox;
所以无论是在你的函数或类中直接使用它
forwardBox.isChecked = false
你的代码是错误的。 请把它改成这个。
fun Tryouts() { var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox CheckBox1.setChecked(false) }
在Kotlin中,只需声明一个variables。 像: var abc
abc可以被任何types的对象初始化。
如果我们必须从布局上看待,那么我们必须写下:
findViewById(R.id.ForwardBox)
然后施展这个观点。
findViewById(R.id.ForwardBox) as CheckBox
然后存储在一个variables。
var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox
- Android studio 2.3:无法初始化类org.jetbrains.kotlin.android.actions.NewKotlinActivityAction
- 如何从kotlin的匿名类实现中更改全局variables
- android studio 3.0.1和kotlin v1.2.10-release-Studio3.0-1有问题
- 将android kotlin项目迁移到sdk 27
- onCreate在抽象父活动no kotlin中调用
- Kotlin auto在Android Studio中完成覆盖
- 为什么我们编写NextActivity :: class.java,尽管这是一个kotlin类?
- Android Studio在layout.xml中显示错误
- Firebase @PropertyName不起作用