Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 윤석열
- 원스휴먼 황금양 구하기
- 원스휴먼 레시피
- 믹스커피
- 2차계엄
- 원스휴먼 황금양
- 원스휴먼 쿠폰
- 계엄령
- 계엄령 외신반응
- 원스휴먼 요리
- 원스휴먼 먹이
- 원스휴먼 동물
- 믹스커피추천
- 레시피 파밍
- 일론머스크
- 유광버섯 통조림
- 원스휴먼 황금양털파밍
- 원스휴먼 스타크롬
- 비상계엄령
- 홈플러스
- 원스휴먼 사료
- 원스휴먼 레시피 파밍
- 시그니처
- 커피추천
- 국방부
- 2차 비상계엄
- 1203계엄령
- 원달러환율
- 홈플러스 시그니처 모카골드믹스커피
Archives
- Today
- Total
0101011001010111
Android - [여기서 @는 뭘 뜻하는 걸까 ?] 예 : Intent(this@FirstActivity, SecondActivity::class.java) 본문
Kotlin/[스스로]Kotlin&안드로이드
Android - [여기서 @는 뭘 뜻하는 걸까 ?] 예 : Intent(this@FirstActivity, SecondActivity::class.java)
[진주] 2023. 9. 4. 08:29728x90
반응형
binding.firstbuttonGosecond.setOnClickListener {
val intent = Intent(this@FirstActivity, SecondActivity::class.java)
startActivity(intent)
}
뷰바인더를 사용하다가 이 @는 왜 써줘야하나, 의미를 찾아보기로 했다.
먼저 위 내용이 있는 전체 코드를 보자
FirstActivity.kt
package com.example.test
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.test.databinding.ActivityFirstBinding
class FirstActivity : AppCompatActivity() {
private lateinit var binding: ActivityFirstBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityFirstBinding.inflate(layoutInflater)
setContentView(binding.root)
// 바로 리스너 설정
binding.firstbuttonGosecond.setOnClickListener {
val intent = Intent(this@FirstActivity, SecondActivity::class.java)
startActivity(intent)
}
}
}
포스팅을 하던 중, inner 클래스가 궁금하여 정리해보았다. ▼
https://vjinjoov.tistory.com/manage/posts/
FirstActivity의 onCreate 메서드 안에서는 기본적으로 this가 FirstActivity 인스턴스를 참조합니다.
그러나 setOnClickListener 람다의 안쪽에서는 this가 람다를 의미하게 됩니다.
람다식 또는 익명 내부 클래스 내에서 바깥쪽 클래스의 this를 참조하고 싶을 때 @를 사용하여 명시적으로 바깥쪽 클래스를 지정해줍니다.
이 경우, setOnClickListener 내부에서 this만 사용하면 그것은 View.OnClickListener의 인스턴스를 참조하게 됩니다. 따라서 FirstActivity의 인스턴스를 참조하고 싶을 때 this@FirstActivity를 사용합니다.
간단하게 표현하면, 우리가 setOnClickListener 람다 내부에서 있는데 FirstActivity를 명시적으로 가리키기 위해서 @를 사용한 것입니다.
728x90
반응형
'Kotlin > [스스로]Kotlin&안드로이드' 카테고리의 다른 글
4-2 인텐트 연결해보기 (0) | 2023.09.05 |
---|---|
Android 입문 (복습) intent (0) | 2023.09.04 |
Android - inner Class (0) | 2023.09.04 |
입문 - 복습 / 액티비티 (0) | 2023.09.04 |
viewBinding 사용법 정리 (0) | 2023.08.31 |