gpt4 book ai didi

Android Studio 3.0 支持 Kotlin : Activity as Context

转载 作者:搜寻专家 更新时间:2023-11-01 07:46:01 27 4
gpt4 key购买 nike

自从Android Studio 3.0 Canary 发布以来,我一直在努力学习Kotlin,有一些我无法理解的地方。我试图用一个按钮和一个 TextView 创建一个简单的 Activity。我不明白为什么 Android Studio 无法将 Activity 识别为上下文。在我的代码中,我尝试做一个 Toast,但是当我将 this 作为参数中的上下文时,AS 给了我错误。

错误是:“无法使用提供的参数调用以下函数”。并用红色突出显示 Context

代码如下:

class MainActivity : AppCompatActivity() {

fun AppCompatActivity.toast(message: CharSequence) = Toast.makeText(this, message, Toast.LENGTH_LONG).show()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val button = findViewById(R.id.mainButton) as Button
button.setOnClickListener{
this@MainActivity.toast("proof")
Log.e("asd","proof")
}
}
}

问题是,当我运行代码时,我没有发现任何缺陷,也没有运行时异常。只是 Android Studio 没有将此识别为上下文

最佳答案

在 Android Studio 3.0 中,如果您使用 com.android.support:appcompat-v7:25.0.1AppCompatActivity 未被识别 作为“上下文对象”。

AppCompatActivity 类扩展了一个 FragmentActivity,后者又扩展了 BaseFragmentActivityJB

因为 Android Studio 3.0 找不到那个类,它不会接受 AppCompatActivity 作为 Context。

appcompat-v7 更新到 25.3.1 或更新版本应该可以解决问题。

关于Android Studio 3.0 支持 Kotlin : Activity as Context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44052441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com