🙋‍♀️ Android

[Android] 데이터 바인딩 DataBinding

수댕ʕت̫͡ʔ 2024. 4. 24. 08:03

DataBinding 이란?

 

레이아웃 XML 파일에 선언한 뷰 객체를 코드에서 쉽게 이용하는 방법이다.

findViewById()를 사용하는 번거로운 작업 없이 UI 요소를 초기화하고 업데이트할 수 있다. 즉, 코드가 간결해지고 가독성이 좋아진다.

 

DataBinding 사용법

 

1. gradle에 databinding 요소를 추가

android {
    ...
    dataBinding {
        enabled = true
    }
}

 

2. XML 코드에서 <layout></layout> 태그를 감싸준다.

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

        <TextView
            android:id="@+id/myTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textSize="18sp"
            android:layout_gravity="center"/>

    </LinearLayout>
</layout>

 

3. Activity나 Fragment에서 바인딩을 이용해 접근한다.

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.myapp.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding // 1

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater) // 2
        setContentView(binding.root) // 3

        binding.myTextView.text = "Hello I am Soojin!" // 3
    }
}