我尝试了数百种方法来解决这个参考问题:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
val dm = DataManager()
val adapterCourses = ArrayAdapter<CourseInfo>(context: this,
android.R.layout)
Run Code Online (Sandbox Code Playgroud)
但在ArrayAdapter<CourseInfo>(context: this, android.R.layout)我得到未解决的参考:上下文中,我不知道为什么。
Android Studio 版本:3.3.2 Kotlin 版本:1.3.21
有人可以帮助我吗?
小智 7
我有类似的错误消息,因为我没有导入Context. 如果您尚未显式导入Context,请尝试将其添加到文件开头附近的导入列表中Activity:
import android.content.Context
Run Code Online (Sandbox Code Playgroud)
Kotlin 中的列用于某些用途,但在传递命名参数时不使用。传递命名参数的语法是parameterName = parameterValue。
当您context = this在传递参数时编写 时,您只是引用context正在调用的函数的参数,明确表示该参数this必须与该context参数相对应。在这种情况下这不是很有用,除非你想非常明确。
当您处理可选参数或无序传递参数时,使用命名参数会很有用。
例如
// DECLARATION of function abc
fun abc(s: String = "", i: Int = 0)
// USAGE of function abc passing only an Int
abc(i = 314)
Run Code Online (Sandbox Code Playgroud)
该函数abc有两个参数,并且它们有一个默认值。在这种情况下,如果您同意默认值,则可以避免传递任何参数。
但如果您只想传递i,则可以通过指定其名称来完成,如示例中所示。
同样,您可以选择不按顺序传递参数,在这种情况下,您将执行以下操作:
abc(i = 314, s = "something")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10388 次 |
| 最近记录: |