코틀린으로 작성한 안드로이드 Event Listener 알아보기

오늘은 기존에 자바로 작성하던 이벤트 리스너를 코틀린으로 변환하여 만들어보려 합니다.

OnclickListener 인터페이스 구현

클래스에 인터페이스를 상속받아서 구현하는 방식입니다.

자바와 별 다를 바 없이, 코틀린의 문법이 차이 날 뿐 입니다.

class ClassName: BaseView, View.OnClickListener
override fun onClick(v: View) {
    //method
}

클래스에 onClick 메소드를 오버라이딩하면 됩니다.

listener 객체 전달

listener 객체를 만들어서 OnClickListener에 전달하는 방식입니다.

val listener = object : View.OnClickListener{
    override fun onClick(p0: View?) {
        //method
    }
}

button.setOnClickListener(listener)

익명 객체 전달

button.setOnClickListener(object :View.OnClickListener{
    override fun onClick(p0: View?) {
        //method
    }
})

버튼의 OnClickListener에 익명 객체를 바로 사용합니다.

onClick 메소드를 오버라이딩하여 사용합니다.

lambda

익명 객체로 전달하는 방식은 IDE에서 자체적으로 Convert to lambda라고 밑줄이 그어집니다.

간단해서 가장 많이 쓰이는 방식이기도 합니다.

button.setOnClickListener {
    //method
}
Written on August 13, 2018