본문 바로가기

Android/Jetpack, Clean Architecture

[Android / Kotlin] DataBinding을 사용해 findViewById()를 대체하기

 

데이터 바인딩을 사용해 findViewById() 대체하는 과정

 

 

1.  build.gradle 파일의 안드로이드 섹션에 data binding을 가능하게 한다.

 buildFeatures {
        dataBinding true
    }

 

2. XML layout 파일에 <layout>태그를 root view로 선언한다. 

<layout 
	xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/res-auto">
    
    <LinearLayout>
    ''''''
 </layout>

 

3. MainActivity에 바인딩 변수를 선언한다.

private lateinit var binding: ActivityMainBinding

 

4. 바인딩 객체를 만들고, 기존의 setContentView를 대체한다.

binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

 

5. findViewById()를 바인딩 객체로 대체한다. (뷰의 이름은 카멜 표기 법으로 대체된다.)

findViewById<Button>(R.id.done_button) ⇒ binding.doneButton

* 카멜 표기법(=낙타 표기법) : 기본적으로 변수명을 모두 소문자로 씁니다.

다만 여러 단어가 이어지는 경우 첫 단어를 제외하고 각 단어의 첫글자만 대문자로 지정해 주는 방식입니다.

 

참고 : codelabs.developers.google.com/android-kotlin-fundamentals/