这是一个超级初学者的问题,但我被难住了。
我正在关注tutorialsEU在youtube (https://www.youtube.com/watch?v=uRyvNKRkwbs)上的Kotlin Android教程视频,他已经开始优化代码的第一部分,我完全遵循了他所做的,但在他工作的地方遇到了错误。
请看我被卡住的地方的屏幕截图
当他突出显示红色的“按钮”时,他可以选择“导入”(这在前面的一些例子中有效,你可以从第3-7行看到),但当我这样做时,它只显示“创建本地变量”按钮“有没有快速解决为什么会发生这种情况的方法?”
下面是对Activity_Main屏幕的描述
谢谢你的帮助
琼恩
发布于 2021-04-06 20:23:08
它需要Kotlin安卓扩展。在app/build.gradle
文件中添加插件:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
另请注意,现在不推荐使用 Kotlin Android 扩展,这意味着不再支持使用 Kotlin 合成器进行视图绑定。 您应该migrate到View Binding的新库。
在任何情况下,您都可以使用“旧”方法:
val button: Button = findViewById(R.id.button)
val textView: TextView = findViewById(R.id.textView)
发布于 2021-04-06 20:29:13
不能只访问kotlin文件中的id:按钮。当前执行此操作的方法是声明
android {
...
buildFeatures {
viewBinding true
}
}
在你的gradle文件中。现在重新构建您的项目。之后,您可以在活动文件中获得Activity(your_name)Binding类型的绑定:private lateinit var binding: ActivityMainBinding
在onCreate中:
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
因此gradle为每个布局xml创建了一个绑定Java类。您可以通过binding.button
访问该按钮
发布于 2021-04-06 20:31:18
要么你应该应用插件‘apply plugin:'kotlin-android-extensions’把它放在你的app.gradle文件的顶部,或者有时它看起来像这样:
并导入import kotlinx.android.synthetic.main.activity_main
但是到目前为止,kotlinx.android扩展是已弃用的,所以您可以迁移到viewbinding read this
或者只使用旧的findViewById方法,比如:
val button: Button = findViewById(R.id.button)
val textView: TextView = findViewById(R.id.textView)
https://stackoverflow.com/questions/66968448
复制相似问题