我有这段Java代码:
MaterialDialog builder = new MaterialDialog.Builder(MainActivity.this)
我想在 Kotlin 中获取 MainActivity 对象。自动转换在 MainActivity.this
时中断。
您可以使用限定this
在 Kotlin 中获取对 MainActivity
对象的引用。 例如:
class MyActivity : MainActivity() {
val builder = MaterialDialog.Builder(this@MyActivity)
}
试试这个标签
this@YourActivityName
答案是:this@ActivityName
例如:如果你想在 MainActivity.kt 中定义"上下文",你应该使用它
。var mContext:Context = this@MainActivity
为什么?因为在 Kotlin 语言中,@ 具有"的"的意思,例如:
val a = this@A // A's this
如果您想了解更多信息,可以查看 Kotlin 语言网站:Kotlin
如果你从内部类调用 Activity.this,你必须把 inner 放在类之前
class MyActivity : MainActivity() {
// Call from class itself
val builder = MaterialDialog.Builder(this@MyActivity)
inner class Inner {
this@MyActivity // Call from the inner class
}
}
in kotlin
this@MainActivity
等效于爪哇
MainActivity.this
就像你在java中获取活动的上下文作为MainActivtiy.this一样,在kotlin中,你将获得this@MainActivity<</strong>
getActivity()
等价物是this@activity_name
在材料对话框的生成器的情况下
materialDialog = MaterialDialog.Builder(this)
您可以像这样获取活动对象。
class DemoActivity : BaseActivity() {
val builder = MaterialDialog.Builder(this@DemoActivity)
}