findViewById

activity_main.xml

위와 같이 button을 추가해 주는 경우 event를 받거나 view영향을 주기 위해서는(버튼동작하도록 하기 위해서)

 

MainActivity.kt 파일에 다음의 코드를 추가해주어야 한다.

MainActivity.kt

findViewById 메소드가 main_activity.xml 레이아웃에 설정된 view들을 가져오게 된다.

 

findViewById를 사용하면 main.xml에서 적용한 글자를 넣거나, 글자의 색상ㆍ글꼴ㆍ스타일 등을 변경할 수 있는

메소드를 지원하게 된다.

 

특히, 가장 중요한 event 처리가 가능해진다.

 

하지만 이렇게 추가를 해버리면 버튼이 여러개가 되면

btn1, btn2, btn3, ... 이런식으로 하나하나 다 추가해 주어야 하는데....

 

 

View Binding

view binding을 사용하면, findViewById를 사용하지 않고도 자동으로 이름을 불러줘서

view 객체를 가져올 수 있게 된다.

 

build.gradle 파일에 다음 이미지의 10번째 줄을 추가하고,

Snyc Now를 눌러준다 (꼭 얘를 눌러야 적용이 된다!)

build.gradle (module) 파일

 

MainActivity.kt 파일에 다음 이미지의 9번째 줄의 코드를 넣어주고,

ActivityMainBinding을 import 해준다

MainActivity.kt

이제 findViewById를 사용하지 않아도, activity_main.xml을 자동으로 가져오게 된다

 

MainActivity.kt

 

14번째 코드의 의미

: inflation을 하여 layout 객체를 memory에 load한다.

 

다음과 같이 15번째 줄의 코드를 수정해주면,

MainActivity.kt

 

activity_main.xml의 view들을

activity_main.xml

 

findViewById를 사용하지 않고도 가져올 수 있게 된다

MainActivity.kt