[kotlin] 데이터 바인딩 리사이클러뷰

안녕하세요! 이번 포스트에서는 Kotlin을 사용하여 데이터 바인딩을 통한 RecyclerView를 구현하는 방법에 대해 알아보겠습니다.

데이터 모델 클래스 작성하기

우선, RecyclerView에 표시할 데이터를 나타내는 데이터 모델 클래스를 작성해야 합니다.

data class Item(val id: Int, val name: String)

RecyclerView의 아이템 레이아웃 정의하기

다음으로 RecyclerView의 각 아이템에 대한 레이아웃을 작성해야 합니다. 이를 위해 item_layout.xml 파일을 생성하여 아이템의 디자인을 정의합니다.

<!-- item_layout.xml -->
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="item"
            type="com.example.Item" />
    </data>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@{item.name}" />
</layout>

RecyclerView 어댑터 구현하기

이제 어댑터 클래스를 작성하여 RecyclerView와 데이터를 바인딩합니다.

class ItemAdapter(private val items: List<Item>) : RecyclerView.Adapter<ItemAdapter.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val inflater = LayoutInflater.from(parent.context)
        val binding: ItemLayoutBinding = DataBindingUtil.inflate(inflater, R.layout.item_layout, parent, false)
        return ViewHolder(binding)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val item = items[position]
        holder.bind(item)
    }

    override fun getItemCount(): Int {
        return items.size
    }

    inner class ViewHolder(private val binding: ItemLayoutBinding) : RecyclerView.ViewHolder(binding.root) {
        fun bind(item: Item) {
            binding.item = item
            binding.executePendingBindings()
        }
    }
}

RecyclerView 설정하기

마지막으로, RecyclerView를 액티비티나 프래그먼트에서 설정합니다.

val recyclerView: RecyclerView = findViewById(R.id.recycler_view)
val items: List<Item> = // 데이터를 가져오는 로직 구현
val adapter = ItemAdapter(items)
recyclerView.adapter = adapter
recyclerView.layoutManager = LinearLayoutManager(this)

이제 데이터 바인딩과 함께 Kotlin으로 RecyclerView를 구현하는 방법에 대해 알아보았습니다. 추가적인 기능이나 세부적인 내용은 Android 공식 문서를 참고하시기 바랍니다.