Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未解析的引用:Kotlin中的findViewById_Android_Kotlin - Fatal编程技术网

Android 未解析的引用:Kotlin中的findViewById

Android 未解析的引用:Kotlin中的findViewById,android,kotlin,Android,Kotlin,我仍然是Kotlin的初学者,只学习了Kotlin的基本工作,我无法在android Studio中引用任何android小部件或更改其状态,无论是TextView、CheckBox还是RadioBox。 在所有情况下,findViewById都存在相同的未解决引用错误… 我不知道我做错了什么,甚至java转换也会输出相同的错误 fun Tryouts() { var CheckBox1 : CheckBox = findViewById(R.id.ForwardBox) as CheckBox

我仍然是Kotlin的初学者,只学习了Kotlin的基本工作,我无法在android Studio中引用任何android小部件或更改其状态,无论是TextView、CheckBox还是RadioBox。
在所有情况下,findViewById都存在相同的未解决引用错误…
我不知道我做错了什么,甚至java转换也会输出相同的错误

fun Tryouts() {
var CheckBox1 : CheckBox = findViewById(R.id.ForwardBox) as CheckBox
CheckBox1.setChecked(false)
}

无论如何,请考虑用下划线定义小写的IDS,例如:

fun Tryouts() {
    val checkBox = findViewById(R.id.ForwardBox) as CheckBox
    checkBox.isChecked = false
}

在Kotlin中,您不需要使用
findViewById
,只需使用
kotlinx.android.synthetic.
中的id
ForwardBox
。kotlin会自动找到代码中所有使用的元素,并将其分配给与布局(xml)中ID相同的变量名

例如:

val checkBox = findViewById(R.id.forward_box) as CheckBox

这似乎是摆脱
findviewbyd()

转到Build.Gradle(模块:应用程序)

添加以下行

fun init(){
    ForwardBox.isChecked = false
}
  • 然后它会要求你同步
  • 然后按同步
在那之后,到你的活动文件说它可能是
MainActivity.kt

有重要意义 导入单个视图的步骤

apply plugin: 'kotlin-android-extensions'
因此,无论是在函数中还是在类中,都可以直接使用它

import kotlinx.android.synthetic.main.activity_main.forwardBox;

你的代码错了。请换成这个

forwardBox.isChecked = false
在Kotlin中,只需声明一个变量。比如:
var abc

abc可以由任何类型的对象初始化

如果我们必须从布局上看问题,那么我们必须写:

fun Tryouts() {
    var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox
    CheckBox1.setChecked(false)
}
那么,请发表这一观点

findViewById(R.id.ForwardBox)
然后存储在一个变量中

findViewById(R.id.ForwardBox) as CheckBox

我也遇到了同样的问题,原因是我意外地在类外声明了函数,而AppCompatActivity中的findViewById方法不可用


将其移回类的范围,并解决了引用的问题。

我是android新手,下面的更改解决了问题


var CheckBox1=findviewbyd(R.id.ForwardBox)

我遇到了完全相同的问题,问题是他们升级了所有内容以查看绑定, 尝试将其用作主类中的私有函数
class MainActivity:AppCompatActivity()
-它对我有用。

在kotlin和/或android studio的新版本中,我只做了:

var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox
(位于build.gradle[Module]文件的顶部)

然后我回到我的活动代码,写下我的按钮名(btn_搜索),android studio完成了引用

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}

作为旁注,我建议大家看一看,它消除了对
findviewbyd()
的需要,我想在这种情况下val会更好。好吧,这并没有回答OP的问题:未解决的引用错误。不要说“你的代码错了”,如果不是这样的话,问题就不存在了。说一些有用的话,比如为什么它错了。“kotlin-android-extensions”不受欢迎
findViewById(R.id.ForwardBox) as CheckBox
var CheckBox1 = findViewById(R.id.ForwardBox) as CheckBox
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}
import kotlinx.android.synthetic.main.activity_main.*