본문 바로가기
컴퓨터/안드로이드

[안드로이드 스튜디오] binding을 사용하자, binding사용법 간단 정리

by 도도새 도 2022. 4. 30.

 

요새 안드로이드 스튜디오를 열심히 배우고 있다. 그런데 문득 binding이라는 개념을 사용하고 있는 것을 보았다. 이 것에 대한 확실한 정리를 해야할 것 같아서 안드로이드 스튜디오의 binding, 바인딩에 대해서 정리한다.

 

Binding 사용

 

view Binding이란, 아주 쉽게 설명하자면 xml파일을 코틀린(혹은 자바)에서 쉽게 접근하기 위한 방법이다. 기본적으로 findViewbyId를 사용했었으나, 안드로이드 버전이 업그레이드 되면서 binding이라는 개념이 등장하게 되었다.

 

바인딩을 사용하게되면, findViewbyId를 대체할 수 있게 된다는 것이다. 게다가 코드의 총 길이도 다소 줄며 각 요소에 쉽게 접근 할 수 있게 된다.

 

1. build.gradle 설정

 

binding을 사용하기 위해서는 build.gradle의 andrid{ 내에 buildFeautrue{viewBinding = true라는 값을 넣어주어야 한다. 즉

뷰 바인딩 추가

위처럼 바인딩을 추가한 후 Alt+Enter를 눌러 Sync now를 해주어야한다.

 

이렇듯 뷰 바인딩(뷰 결합)을 하도록 설정하면 각 모듈에 포함된 xml 레이아웃 파일에 대한 바인딩 클래스가 자동 생성된다. 

이 클래스의 이름은 각 xml파일의 이름을 카멜케이스로 변경 한 후, 뒤에 Binding을 붙인 것이다.

 

이에 대한 예는 아래와 같다.

XML파일 명 Binding 클래스명
hello_world.xml HelloWorldBinding
activity_main.xml ActiviktyMainBinding
result_profile.xml ResultProfileBinding

 

2. 바인딩 이용 xml 접근

 

바인딩 예시(activity_main.xml)

 

바인딩 예시(mainActivity.kt)

이제 binding을 이용해서 메인 엑티비티에서 xml에 접근하여 요소의 글자를 변경해보겠다. 

주석 1 : 우선 바인딩 클래스의 inflate() 메서드를 호출해 binding이라는 이름으로 인스턴스를 생성한다.

 binding이라는  ActivityMainBing.infalte(layoutInflater)를 이용해 activity_main의 컨텐츠를 담는다

주석 2 : 컨텐츠 뷰를 바인딩으로 변경한다. 즉, 결합한 xml파일로 변경한다.

주석 3 : 바인딩 객체를 이용해 xml파일의 text1라는 아이디를 가진 요소에 접근하여 text값을 변경한다. 

결과

*참고 : inflate란 xml에 표기된 레이아웃들을 메모리에 객체화 시키는 행동이다. 다시 말해, infalte를 이용해 xml의 요소들을 객체화해서 코드로 사용 가능하게 만든다.

댓글