首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >导入变量'button‘时出现Kotlin错误

导入变量'button‘时出现Kotlin错误
EN

Stack Overflow用户
提问于 2021-04-06 20:13:31
回答 4查看 277关注 0票数 1

这是一个超级初学者的问题,但我被难住了。

我正在关注tutorialsEU在youtube (https://www.youtube.com/watch?v=uRyvNKRkwbs)上的Kotlin Android教程视频,他已经开始优化代码的第一部分,我完全遵循了他所做的,但在他工作的地方遇到了错误。

请看我被卡住的地方的屏幕截图

当他突出显示红色的“按钮”时,他可以选择“导入”(这在前面的一些例子中有效,你可以从第3-7行看到),但当我这样做时,它只显示“创建本地变量”按钮“有没有快速解决为什么会发生这种情况的方法?”

下面是对Activity_Main屏幕的描述

谢谢你的帮助

琼恩

EN

回答 4

Stack Overflow用户

发布于 2021-04-06 20:23:08

它需要Kotlin安卓扩展。在app/build.gradle文件中添加插件:

代码语言:javascript
运行
复制
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

另请注意,现在不推荐使用 Kotlin Android 扩展,这意味着不再支持使用 Kotlin 合成器进行视图绑定。 您应该migrateView Binding的新库。

在任何情况下,您都可以使用“旧”方法:

代码语言:javascript
运行
复制
val button: Button = findViewById(R.id.button)
val textView: TextView = findViewById(R.id.textView)
票数 2
EN

Stack Overflow用户

发布于 2021-04-06 20:29:13

不能只访问kotlin文件中的id:按钮。当前执行此操作的方法是声明

代码语言:javascript
运行
复制
android {
   ...
   buildFeatures {
      viewBinding true
   }
}

在你的gradle文件中。现在重新构建您的项目。之后,您可以在活动文件中获得Activity(your_name)Binding类型的绑定:private lateinit var binding: ActivityMainBinding

在onCreate中:

代码语言:javascript
运行
复制
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

因此gradle为每个布局xml创建了一个绑定Java类。您可以通过binding.button访问该按钮

票数 0
EN

Stack Overflow用户

发布于 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方法,比如:

代码语言:javascript
运行
复制
val button: Button = findViewById(R.id.button)
val textView: TextView = findViewById(R.id.textView)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66968448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档