요새 안드로이드 스튜디오를 열심히 배우고 있다. 그런데 문득 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 접근
이제 binding을 이용해서 메인 엑티비티에서 xml에 접근하여 요소의 글자를 변경해보겠다.
주석 1 : 우선 바인딩 클래스의 inflate() 메서드를 호출해 binding이라는 이름으로 인스턴스를 생성한다.
binding이라는 ActivityMainBing.infalte(layoutInflater)를 이용해 activity_main의 컨텐츠를 담는다
주석 2 : 컨텐츠 뷰를 바인딩으로 변경한다. 즉, 결합한 xml파일로 변경한다.
주석 3 : 바인딩 객체를 이용해 xml파일의 text1라는 아이디를 가진 요소에 접근하여 text값을 변경한다.
결과
*참고 : inflate란 xml에 표기된 레이아웃들을 메모리에 객체화 시키는 행동이다. 다시 말해, infalte를 이용해 xml의 요소들을 객체화해서 코드로 사용 가능하게 만든다.
'컴퓨터 > 안드로이드' 카테고리의 다른 글
[안드로이드] 커스텀 버튼 만들기(상태 드로어블)/이미지 버튼 (0) | 2022.06.21 |
---|---|
[안드로이드/코틀린] 코틀린 배열과 리스트 정리, 배열과 리스트 차이점 (0) | 2022.06.08 |
[안드로이드/코틀린] 코틀린 변수와 형변환 한 방 정리 (0) | 2022.06.07 |
[안드로이드 스튜디오] 리사이클러뷰 구현하기(간단 설명) (0) | 2022.05.07 |
[안드로이드 스튜디오] 레이아웃에 다른 레이아웃 추가(addView, binding 사용하기) (0) | 2022.05.01 |
댓글