안드로이드 스튜디오, Listener( 리스너 )의 반환값 true / false의 의미

하이루·2022년 2월 15일
0

안드로이드 스튜디오의 View 클래스에는 다양한 Listener들이 내장되어 있다.

일반적으로 사용자의 동작에 대한 반응을 위해서
이런 Listener의 내용을 구현하여,
View에 set하는 방식으로 동작을 구현할 것이다.


이번 글에서는 이런 Listener의 return값이 true인지 false인지에 따라
무엇이 달라지는 지 적을 것이다.

View파일의 Listener부분에 가보면, 각 Listener메소드들을 어떻게 사용하는지에 대한 주석이 있는데,

return에 대한 설명은 대다수가 다음과 같다.

Returns :
true if the callback consumed the ㅡㅡ동작ㅡㅡ,
false otherwise.

즉, 해당 동작에 대한 callback을 모두 소모했다면 true를
그렇지 않다면 false를 반환하라는 의미이다.

이것을 이해하기 위해 예를 들자면 다음과 같다.

EditText를 예로 들자면,
EditText는 본래 사용자가 클릭하면 문자를 입력할 수 있도록 하이라이트되는 상태에 돌입한다.
이것은 EditText에 기본적으로 리스너 설정이 되어있는 내용이라고 보면 되는데,

EditText에 TouchListener()를 정의해서 set 했을 때,

  • TouchListener()의 return을 true로 하면

    Touch라는 동작에 의해 TouchListener()가 실행되고나서,
    해당 EditText에 대한 모든 동작이 완전히 소모되었다고 인식하므로,
    TouchListener() 이후에 연쇄적으로 실행될 예정인 리스너들이 모두 생략된다.

    --> 즉, EditText를 누르면 TouchListener는 실행되지만,
    EditText에 글을 입력할 수 있도록 만들어주는 리스너와 같이
    후속적으로 실행되는 EditText에 설정된 리스너들이 생략되는 것이다.

  • TouchListener()의 return을 false로 하면

    TouchListener()에 내가 정의한 코드가 실행되고나서,
    아직 EditText의 동작이 모두 소모되지 않았다고 있식하므로
    후속적으로 실행될 Lister들이 정상적으로 실행된다.

    --> 즉, EditText를 누르면 TouchListener가 실행됨과 함께
    정상적으로 하이라이트 되어 글을 입력할 수 있게 된다.

profile
ㅎㅎ

0개의 댓글