sourcecode

Kotlin에서 "Activity.this"에 액세스하는 방법

copyscript 2022. 8. 19. 20:59
반응형

Kotlin에서 "Activity.this"에 액세스하는 방법

자바 코드는 다음과 같습니다.

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

Kotlin에서 MainActivity 개체를 가져오고 싶습니다.자동 변환은 다음 시간에 끊어집니다.MainActivity.this.

다음 정보를 참조할 수 있습니다.MainActivityKotlin의 오브젝트. 예를 들어 다음과 같습니다.

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

대신 이 라벨을 사용해 보세요.

this@YourActivityName

액티비티를 호출하는 경우.이것은 내적인 수업에서, 당신은 수업 전에 내적인 을 넣어야 한다.

class MyActivity : MainActivity() {
    // Call from class itself
    val builder = MaterialDialog.Builder(this@MyActivity) 

    inner class Inner {
        this@MyActivity // Call from the inner class 
    }
}

답변: this@ActivityName

예를 들어 다음과 같습니다.MainActivity.kt에서 "Context"를 정의하려면 이 명령을 사용해야 합니다.

var mContext:Context = this@MainActivity

왜일까요? 코틀린어로 @는 다음과 같은 "of"를 의미하기 때문입니다.

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

자세한 내용은 Kotlin Language 웹 사이트를 참조하십시오.코틀린에서의 이 표현

인코틀린

this@MainActivity

JAVA에 상당합니다.

MainActivity.this

MainActivtiy로 액티비티의 콘텍스트를 취득하기 위해서 Java에서 하는 것과 같습니다.이것은 kotlin에서 this@MainActivity로 컨텍스트를 가져옵니다.

getActivity()등가물은this@activity_namematerialDialog용 빌더의 경우

materialDialog = MaterialDialog.Builder(this)

이렇게 활동 대상을 얻을 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/41617042/how-to-access-activity-this-in-kotlin

반응형