onClick in XML vs. onClickListener
퍼포먼스는 둘 다 같다. 코드가 길지 않다면 onClick을 사용하는 방식이, 코드가 길어진다면 onClickListener를 사용하는 방식이 괜찮아 보인다.
onClick in XML의 장점 ( API 4 부터 사용 가능 )
onClickListener()
를 지정하는 방식은inflate
또는kt findViewById()
로 View를 불러와야 하기 때문에 후자의 경우 리스너를 지정할 View 마다 id를 지정해주어야 하지만onClick=
은 id를 지정할 필요가 없다.- C#에서 리소스의 Event를 지정할 때 사용하는 방식도 이런 식이다.
1
2
3
<ImageButton
android:id="@+id/del\_item"
android:onClick="onClickDelete"/>
1
2
fun onClickDelete(v: View) {
}
onClickListener의 장점
onClickListener()
는 behavior 코드와 View를 따로 작성하기 때문에 코드가 복잡해지는 경우 가독성과 유지보수에 유리하다.(★ JS에서 addEventHandler()를 쓰느냐 HTML에 onClick을 지정하느냐에서 전자가 더 좋은 방법인 것과 같은 맥락.)onClickListener
는 interface이기 때문에, 이를 구현하는 클래스에서 instance variable이나 method를 만들어 사용하도록 할 수 있다.
1
2
3
4
val btn = findViewById(R.id.del\_item) as ImageButton
btn.setOnClickListener {
v -> onClickDelete(v)
}
This post is licensed under CC BY 4.0 by the author.