web-dev-qa-db-ja.com

Kotlinで「Activity.this」にアクセスする方法は?

次のJavaコードがあります:

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

KotlinでMainActivityオブジェクトを取得したい。自動変換はMainActivity.thisで中断します。

83
Bal0r

修飾MainActivity を使用して、Kotlinのthisオブジェクトへの参照を取得できます。例えば。:

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

代わりにこれを試してください

this@ActivityName
8
bala

内部クラスから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 
    }
}
1
Allen Wang

MainActivtiy.thisとしてアクティビティのコンテキストを取得するためにJavaで行うように、kotlinではthis @ MainActivityとしてコンテキストを取得します

1
Shivam Yadav