[kotlin] 데이터바인딩을 통한 액티비티 간 데이터 공유

데이터바인딩은 안드로이드에서 XML 레이아웃 파일과 뷰 관련 로직을 손쉽게 바인딩할 수 있는 기능을 제공합니다. 이 기능을 활용하여 액티비티 간에 데이터를 공유하는 방법을 알아보겠습니다.

데이터바인딩 설정

먼저, 데이터바인딩을 사용하려면 build.gradle 파일에 아래의 의존성을 추가해야 합니다.

android {
    ...
    buildFeatures {
        dataBinding true
    }
}

dependencies {
    ...
    implementation "androidx.databinding:databinding-runtime:{latest_version}"
}

그리고 액티비티의 XML 파일 상단에 데이터바인딩을 활성화하는 코드를 추가해야 합니다.

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="sharedData"
            type="com.example.SharedData" />
    </data>
    <LinearLayout
        ...
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!-- 레이아웃 내용 -->
    </LinearLayout>
</layout>

데이터 공유

데이터바인딩을 사용하여 액티비티 간에 데이터를 공유하려면, 송신 측 액티비티에서는 다음과 같이 데이터를 설정할 수 있습니다.

val binding: YourActivityBinding = DataBindingUtil.setContentView(this, R.layout.your_activity)
val sharedData = SharedData(/* 데이터 초기화 */)
binding.sharedData = sharedData

수신 측 액티비티에서는 다음과 같이 받아와서 사용할 수 있습니다.

val binding: YourActivityBinding = DataBindingUtil.setContentView(this, R.layout.your_activity)
val receivedData = binding.sharedData // 수신 측에서 송신 측의 데이터를 사용

이렇게 데이터바인딩을 활용하여 액티비티 간에 데이터를 공유할 수 있습니다.

데이터바인딩을 이용하면 액티비티 간에 데이터를 전달하는 과정을 보다 간편하게 처리할 수 있습니다. Kotlin과 데이터바인딩을 함께 활용하면 더욱 편리하고 구조적으로 가독성이 좋은 코드를 작성할 수 있습니다.

이상으로 데이터바인딩을 통한 액티비티 간 데이터 공유에 대해 알아보았습니다.

참고 문헌: