[android] 데이터 바인딩으로 인텐트 바인딩
Android 앱을 개발하다 보면 화면 간 데이터 전달이 필요한 경우가 많습니다. 이때 인텐트(Intent)를 사용하여 데이터를 전달할 수 있는데, 데이터 바인딩(Data Binding)을 활용하면 이 과정을 더욱 간단하게 만들 수 있습니다.
데이터 바인딩이란?
데이터 바인딩은 앱의 UI 구성 요소와 앱의 데이터를 직접적으로 연결하는 기술입니다. XML 레이아웃 파일의 요소들을 바인딩 객체를 통해 엮어주고, 데이터의 변경에 따라 화면을 자동으로 갱신할 수 있도록 도와줍니다. 이는 코드를 작성하는 수고를 덜어주고, 런타임 에러를 방지해주는 등 여러 가지 이점이 있습니다.
인텐트 바인딩 사용하기
데이터 바인딩을 사용하여 인텐트를 전달하는 방법은 매우 간단합니다.
- 데이터 바인딩 레이아웃 파일에서 인텐트 바인딩 설정:
<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>
위의 예시에서
userData
는UserData
클래스의 객체를 가리킵니다. - 액티비티 또는 뷰모델에서 데이터 전달하기:
fun sendIntent(userData: UserData) { val intent = Intent(context, NextActivity::class.java) intent.putExtra("userData", userData) startActivity(intent) }
이제 해당 인텐트를 통해
userData
객체가 다음 화면으로 전달됩니다.
이처럼 데이터 바인딩을 사용하여 인텐트를 전달하면 안드로이드 앱 개발에서의 작업이 더욱 효율적으로 진행될 수 있습니다. 데이터 바인딩을 적극적으로 활용하여 코드를 더욱 간결하게 작성하고, UI와 데이터 간의 연결을 더욱 효율적으로 처리할 수 있습니다.
더 많은 내용을 알고 싶다면 Android Developers - Data binding를 참고해보세요.