web-dev-qa-db-fra.com

Comment accéder à "Activity.this" dans Kotlin?

J'ai ce morceau de code Java:

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

Je veux obtenir l'objet MainActivity dans Kotlin. La conversion automatique est interrompue à MainActivity.this.

91
Bal0r

Vous pouvez obtenir une référence à votre objet MainActivity dans Kotlin en utilisant un qualifié this . par exemple.:

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

Essayez ceci à la place

this@ActivityName
11
bala

Si vous appelez Activity.this depuis une classe interne, vous devez mettre inner avant la classe

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

Comme vous le faites dans Java pour obtenir le contexte d'activité en tant que MainActivtiy.this, vous obtiendrez le contexte sous kotlin sous la forme this @ MainActivity

1
Shivam Yadav