Android 未解析的引用:Kotlin中的findViewById
我仍然是Kotlin的初学者,只学习了Kotlin的基本工作,我无法在android Studio中引用任何android小部件或更改其状态,无论是TextView、CheckBox还是RadioBox。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
在所有情况下,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.
中的idForwardBox
。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.*