Bal*_*l0r 104 java android kotlin
我有这段Java代码:
MaterialDialog builder = new MaterialDialog.Builder(MainActivity.this)
Run Code Online (Sandbox Code Playgroud)
我想在Kotlin中获取MainActivity对象.自动转换中断MainActivity.this
.
mfu*_*n26 188
您可以MainActivity
使用合格的人this
在Kotlin中获取对象的引用.例如:
class MyActivity : MainActivity() {
val builder = MaterialDialog.Builder(this@MyActivity)
}
Run Code Online (Sandbox Code Playgroud)
bal*_*ala 13
试试这个:
this@ActivityName
Run Code Online (Sandbox Code Playgroud)
can*_*ler 13
答案是:this@ActivityName
例如:如果您想在 MainActivity.kt 中定义“Context”,则应该使用它
var mContext:Context = this@MainActivity
Run Code Online (Sandbox Code Playgroud)
为什么?因为在 Kotlin 语言中 @ 的意思是“of”,例如:
val a = this@A // A's this
Run Code Online (Sandbox Code Playgroud)
如果想了解更多信息,可以查看Kotlin语言网站: This Expression in Kotlin
如果您从内部类调用 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
}
}
Run Code Online (Sandbox Code Playgroud)
在科特林中
this@MainActivity
Run Code Online (Sandbox Code Playgroud)
相当于JAVA
MainActivity.this
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29596 次 |
最近记录: |