Xml 가져오기
- xml로 만든 view를 Activity로 가져오는 방법
📎 익명 함수/클래스
- 이름이 없는 함수
- 한번만 사용하기 때문에 이름을 만들어줄 필요가 없다.
1. 함수에 이름을 붙이는 경우
- 예시 ) 이벤트 리스너들을 무명 객체로 구현해서 변수 click에 담는다.
val click = object: View.OnClickListener{
override fun onClick(v: View?){
Log.d("click", "Click!")
}
}
hello.setOnClickListener(click)
2. 익명 함수
- 예시 ) 이벤트 리스너에 이름을 붙이지 않고 익명 함수 자체로 바로 매개변수에 넣어준다.
hello.setOnClickListener(object: View.OnClickListener{
override fun onClick(v: View?){
Log.d("click", "Click!")
}
})
3. 람다 함수
hello.setOnClickListener{
Log.d("click", "Click!")
}
object 키워드
- kotlin에서 object 키워드를 사용하는 경우가 여러개 존재하지만, 이번 익명 함수에서 쓴 용도는 무명 객체(anonymous object)이다.
- object 키워드를 사용하는 여러 경우의 공통점은 클래스를 정의하면서 동시에 객체를 생성한다는 것이다.
- 무명 객체로 쓰는 경우에는 한 번만 사용되고 재사용되지 않는다는 점과 외부 클래스의 변수에 접근하여 값을 수정하는 것이 가능하다는 점이 특징이다.(java에서는 final 키워드가 붙어야만 접근이 가능하다.)
Event Listener
- event가 발생할 때까지 계속 기다리고 있는다.
- 기다리다가 event가 발생하면 안드로이드 OS에서 Listener들에게 event가 발생한 사실을 알리고, 이벤트가 발생한 view를 it으로 넘겨주면 알맞는 기능을 수행한다.