如何在 Kotlin 访问“活动这个”?

我有一段 Java 代码:

MaterialDialog builder = new MaterialDialog.Builder(MainActivity.this)

我想得到 Kotlin 的 MainActivity 对象。

78885 次浏览

你可以使用 Kotlin 的 合资格的 this来获得对你的 MainActivity对象的引用。例如:

class MyActivity : MainActivity() {
val builder = MaterialDialog.Builder(this@MyActivity)
}

试试这个标签

this@YourActivityName

如果从内部类调用 Activity.this,则必须在类之前放置 内心

class MyActivity : MainActivity() {
// Call from class itself
val builder = MaterialDialog.Builder(this@MyActivity)


inner class Inner {
this@MyActivity // Call from the inner class
}
}

正如您在 Java 中获取 MainActivtiy.this 活动的上下文一样,在 kotlin 中您将获取 @ MainActivity的上下文

getActivity()等价于 this@activity_name 在材料生成器的情况下

materialDialog = MaterialDialog.Builder(this)

你可以得到这样的活动对象。

class DemoActivity : BaseActivity() {
val builder = MaterialDialog.Builder(this@DemoActivity)
}

答案是: This@ActivityName

例如: 如果您想在 MainActivity.kt 中定义“ Context”,那么应该使用它

var mContext:Context = this@MainActivity

为什么? 因为在 Kotlin 语中“ of”的意思是:

val a = this@A // A's this

如果你想了解更多信息,你可以浏览科特林语言网站: 在 Kotlin 的表达

在 Kotlin

this@MainActivity

相当于 JAVA

MainActivity.this