프로젝트를 진행하던 중 의문이 생겨서 적어본다.
class SignUpActivity : AppCompatActivity() {
private lateinit var viewBinding: ActivitySignUpBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewBinding = ActivitySignUpBinding.inflate(layoutInflater)
setContentView(viewBinding.root)
viewBinding.btnIndividual.setOnClickListener {
startActivity(Intent(this,IndividualSignUpActivity::class.java))
}
}
}
여기서는 this를 사용해도 오류가 나지 않는다.
class SignUpActivity : AppCompatActivity() {
private lateinit var viewBinding: ActivitySignUpBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewBinding = ActivitySignUpBinding.inflate(layoutInflater)
setContentView(viewBinding.root)
viewBinding.run {
btnIndividual.setOnClickListener {
startActivity(Intent(this@SignUpActivity,IndividualSignUpActivity::class.java))
}
btnOrganization.setOnClickListener {
startActivity(Intent(this@SignUpActivity,OrganizationSignUpActivity::class.java))
}
}
}
}
}
여기서는 this를 사용하면 오류가 나고 this@SignUpActivity라고 해야 오류가 나지 않는다.
Qualified this
찾아보니 외부 this 범위에서 접근하려면 this@SignUpActivity처럼 사용한다.
의미는 SignUpActivity의 this라는 뜻이다.
Implicit this
멤버 함수의 this를 호출할 때, this를 생략할 수 있다.
https://kotlinlang.org/docs/this-expressions.html#implicit-this
'android' 카테고리의 다른 글
[android] NestedScrollView에서 ViewPager2가 슬라이드 이동을 하지 않는 문제 (0) | 2023.09.10 |
---|---|
[android] ConstraintLayout 화면 비율 유지하기 (0) | 2023.02.18 |
[해결하기] TalkBack- focus 부분과 accessiblity 부분 처리 (0) | 2023.01.26 |
[android] Drawing circle (0) | 2023.01.14 |
화면 크기에 상관없이 View 비율 일정하게 하기 (0) | 2023.01.13 |