[Android] DataBinding이란?

minnie·2022년 1월 4일
0

Jetpack

목록 보기
2/13
post-thumbnail

1. DataBinding이란?

UI 요소와 데이터를 프로그램적 방식으로 연결하지 않고, 선언적 형식으로 결합할 수 있게 도와주는 라이브러리.
프로그래밍적 방식이라 하면 기존에 코드 내에서 UI 요소를 가져와 findViewById 로 데이터와 결합해준 후 데이터를 할당하는 방식이다.
선언적 형식은 코드 내에서 UI 요소를 호출할 필요 없이 레이아웃 파일(xml)에서 직접 할당해주는 방식이다.
그러므로 XML에 있는 view에 findViewById를 하지 않고 자동으로 접근이 가능하다.


2. DataBinding 특징

  • data가 바뀌면 자동으로 View를 변경하게 할 수 있음
  • xml 리소스만 보고도 view에 어떤 데이터가 들어가는지 파악이 가능
  • findViewId()를 호출하지 않아도, 자동으로 xml에 있는 View들을 생성

3. DataBinding 사용법

3-1 build.gradle binding 활성화

⚡이전버전

/*코틀린인 경우 plugin 추가*/
apply plugin: 'kotlin-kapt' 

databinding{
	enable = ture
    }

⚡최신버전

/*코틀린인 경우 plugin 추가*/
plugins {
    id 'kotlin-kapt'
}

buildFeatures{
        dataBinding = true
    }

3-2. xml을 layout 태그로 감싸기

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:bind = "http://schemas.android.com/apk/res-auto">
    
     <data>
        <variable
            name="activity"
            type="com.example.jetpackapp.databinding.DataBindingActivity" />
    </data>
    
    <androidx.constraintlayout.widget.ConstraintLayout...>
    
</layout>

3-3. Activity에서 DataBinding 생성

lateinit var binding : ActivityDatabindingBinding 

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

3-4. 생성한 databinding으로 findviewid 없이 view 사용

 binding.textTest.text = "test"

👉Next
다음 포스트에서는 xml에서 data태그를 사용하여 레이아웃 파일에서 직접 View에 텍스트를 할당하는 실습을 진행할 것 이다.

profile
Android Developer

0개의 댓글