[kotlin] 바인딩 어댑터와 어댑터 바인딩 사용하기
안녕하세요! 안드로이드 앱 개발을 하다 보면 RecyclerView와 같은 리스트를 표현하기 위해 어댑터를 사용해야 할 때가 있습니다. 하지만 이렇게 재사용 가능한 View와 데이터를 연결하는 작업은 번거로울 수 있습니다. 이때 바인딩 어댑터와 어댑터 바인딩을 사용하면 이러한 과정을 더욱 효율적으로 처리할 수 있습니다.
1. 바인딩 어댑터
바인딩 어댑터는 XML 데이터와 View를 연결하는 데 도움을 주는 클래스입니다. 간단한 어댑터와 달리 데이터를 바로 View에 매핑할 수 있기 때문에 코드가 더욱 간결해집니다.
class MyBindingAdapter : RecyclerView.Adapter<MyBindingAdapter.ViewHolder>() {
var data = listOf<String>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val inflater = LayoutInflater.from(parent.context)
val binding = ItemLayoutBinding.inflate(inflater, parent, false)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind(data[position])
}
override fun getItemCount() = data.size
class ViewHolder(private val binding: ItemLayoutBinding) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: String) {
binding.textView.text = item
}
}
}
2. 어댑터 바인딩
어댑터 바인딩을 사용하면 데이터와 View 사이의 바인딩 코드를 XML 레이아웃 파일에 작성할 수 있습니다. 이를 통해 ViewHolder 클래스에 직접 접근하는 대신 XML에서 데이터를 처리할 수 있어 코드를 더욱 간결하게 작성할 수 있습니다.
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="item"
type="String" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{item}" />
</layout>
요약
바인딩 어댑터와 어댑터 바인딩은 안드로이드 앱 개발에서 리스트 관련 작업을 더욱 효율적으로 처리할 수 있는 도구입니다. 두 기술을 적절히 사용하면 코드를 더욱 간결하고 가독성 있게 작성할 수 있습니다.
더 많은 정보를 원하시면 아래 링크를 확인해보세요!
이상으로 코틀린에서 바인딩 어댑터와 어댑터 바인딩을 사용하는 방법에 대해 알아보았습니다. 감사합니다!