[java] Kotlin에서 ‘Activity.this’에 액세스하는 방법은 무엇입니까?

이 Java 코드가 있습니다.

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

Kotlin에서 MainActivity 개체를 얻고 싶습니다. 자동 변환이에서 중단됩니다 MainActivity.this.



답변

정규화 된MainActivity .NET Framework를 사용하여 Kotlin에서 개체에 대한 참조를 가져올 수 있습니다 . 예 :this

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 
    }
}


답변

MainActivtiy.this로 활동 컨텍스트를 얻기 위해 Java에서 수행하는 것처럼 kotlin에서는 this @ MainActivity 로 컨텍스트를 얻습니다.


답변

getActivity()this@activity_name
materialDialog 용 빌더의 경우에 해당합니다.

materialDialog = MaterialDialog.Builder(this)


답변

이와 같은 활동의 대상을 얻을 수 있습니다.

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


답변

Kotlin에서는 다음과 같이 사용해야합니다.

this @ ActivityName

예 : MainActivity.kt에서 “Context”를 정의하려는 경우 사용해야합니다.

var mContext:Context = this@MainActivity

왜? Kotlin 언어에서 @는 다음과 같은 “의”를 의미하기 때문입니다.

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

자세한 내용은 Kotlin 언어 웹 사이트 : This Expression in Kotlin을 참조하세요.

뿡 빵뀨