[android] 데이터 바인딩으로 인텐트 바인딩

Android 앱을 개발하다 보면 화면 간 데이터 전달이 필요한 경우가 많습니다. 이때 인텐트(Intent)를 사용하여 데이터를 전달할 수 있는데, 데이터 바인딩(Data Binding)을 활용하면 이 과정을 더욱 간단하게 만들 수 있습니다.

데이터 바인딩이란?

데이터 바인딩은 앱의 UI 구성 요소와 앱의 데이터를 직접적으로 연결하는 기술입니다. XML 레이아웃 파일의 요소들을 바인딩 객체를 통해 엮어주고, 데이터의 변경에 따라 화면을 자동으로 갱신할 수 있도록 도와줍니다. 이는 코드를 작성하는 수고를 덜어주고, 런타임 에러를 방지해주는 등 여러 가지 이점이 있습니다.

인텐트 바인딩 사용하기

데이터 바인딩을 사용하여 인텐트를 전달하는 방법은 매우 간단합니다.

  1. 데이터 바인딩 레이아웃 파일에서 인텐트 바인딩 설정:
    <layout>
        <data>
            <variable
                name="userData"
                type="com.example.UserData" />
        </data>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Send Intent"
                android:onClick="@{() -> viewModel.sendIntent(userData)}" />
        </LinearLayout>
    </layout>
    

    위의 예시에서 userDataUserData 클래스의 객체를 가리킵니다.

  2. 액티비티 또는 뷰모델에서 데이터 전달하기:
    fun sendIntent(userData: UserData) {
        val intent = Intent(context, NextActivity::class.java)
        intent.putExtra("userData", userData)
        startActivity(intent)
    }
    

    이제 해당 인텐트를 통해 userData 객체가 다음 화면으로 전달됩니다.

이처럼 데이터 바인딩을 사용하여 인텐트를 전달하면 안드로이드 앱 개발에서의 작업이 더욱 효율적으로 진행될 수 있습니다. 데이터 바인딩을 적극적으로 활용하여 코드를 더욱 간결하게 작성하고, UI와 데이터 간의 연결을 더욱 효율적으로 처리할 수 있습니다.

더 많은 내용을 알고 싶다면 Android Developers - Data binding를 참고해보세요.