2017-09-07 1 views
2

안드로이드 용 kotlin을 처음 사용했습니다. 확장 기능에서 같은 이름을 가진 클래스 멤버에 액세스하려고합니다. 예 :Kotlin android의 확장 기능에서 같은 이름의 클래스 멤버에 액세스하는 방법

var visibility = null //class level variable 

    //EXTENSION FUNCTION 
    fun ProgressBar.changeVisibleState(flag: Boolean) { 
     if (flag) 
      visibility = View.VISIBLE 
     else 
      visibility = View.INVISIBLE 
    } 

어떻게 changeVisibleState 방법 visibility 액세스 할 수있다.

답변

1

.

class Bye { 
    var visibility: Int = 0 //class level variable 
} 
class Hello { 
    var visibility: Int = 0 //class level variable 

    fun Bye.changeVisibleState(flag: Boolean) { 
     //access Bye's prop 
     visibility = if (flag) 1 else 2 
     //access Hello's prop 
     [email protected] = 12 
    } 
} 
2

this 연산자를 사용할 수 있습니다. 당신이 Hello의 재산 대신 ProgressBar 년대에 액세스 할 수있는 qualified this[email protected]

class Hello { 
    var visibility: Int = 0 //class level variable 

    //EXTENSION FUNCTION 
    fun ProgressBar.changeVisibleState(flag: Boolean) { 
     if (flag) 
      [email protected] = View.VISIBLE 
     else 
      [email protected] = View.INVISIBLE 
    } 
} 
관련 문제