[android]OnClickListener와 OnClick의 차이점

    

 OnClickListener와 OnClick의 차이점:

  • OnClickListener는 구현해야 하는 인터페이스이며 Java 코드에서 보기로 설정할 수 있습니다.
  • OnClickListener는 누군가가 실제로 클릭하기를 기다리는 것이고, onclick은 누군가가 클릭할 때 어떤 일이 일어나는지를 결정합니다.
  • 최근에 Android는 인터페이스를 구현할 필요 없이 보기의 활동에서 직접 클릭을 처리하는 데 사용할 수 있는 android:onclick이라는 xml 속성을 보기에 추가했습니다.
  • 필요한 경우 하나의 리스너 구현을 다른 리스너 구현으로 쉽게 바꿀 수 있습니다.
  • OnClickListener를 사용하면 이벤트를 트리거하는 보기에서 클릭 이벤트의 동작/동작을 분리할 수 있습니다. 간단한 경우에는 그렇게 큰 문제가 아니지만 복잡한 이벤트 처리의 경우 코드의 가독성과 유지 관리 가능성이 향상될 수 있습니다.
  • OnClickListener는 인터페이스이기 때문에 이를 구현하는 클래스는 이벤트를 처리하는 데 필요한 인스턴스 변수와 메서드를 결정하는 데 유연성이 있습니다. 다시 말하지만, 이것은 간단한 경우에는 큰 문제가 아니지만 복잡한 경우에는 이벤트 처리와 관련된 변수/메서드를 이벤트를 트리거하는 View의 코드와 혼동하고 싶지 않습니다.
  • XML 레이아웃에서 함수 바인딩이 있는 onClick은 onClick과 호출할 함수 간의 바인딩입니다. onClick이 작동하려면 함수에 하나의 인수(View)가 있어야 합니다.

둘 다 같은 방식으로 작동하지만 하나는 Java 코드를 통해 설정되고 다른 하나는 xml 코드를 통해 설정됩니다.


출처: https://stackoverflow.com/questions/21319996/android-onclick-in-xml-vs-onclicklistener/21326604


다른 글이나 댓글을 보니까 onclick을 쓰는 코드는 많이 없다는 말이 있다. 코드 읽는데 헷갈린다고함.


위에 다른 답변을 보니 onclick으로 xml을 만들면 clickable을 바꾸지 않는데 setOnClickListener는 clickable을 자동으로 true로 설정해준다고 한다. clickable의 default가 false인 기기가 있으니 onclick을 사용하는 경우에는 특별히 따로 설정해야 좋다. setOnClickListener를 사용하는 것이 좋다.



댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet