[kotlin] 리사이클러뷰(RecyclerView)로 목록 구현하기

리사이클러뷰(RecyclerView)는 안드로이드 앱에서 다양한 목록을 구현하는 데 사용되는 매우 유용한 위젯입니다. 이것은 데이터를 리스트 형태로 표시하고, 화면에 나타낼 때 효율적으로 관리하기 위해 사용됩니다.

1. 의존성 추가하기

build.gradle 파일의 dependencies 섹션에 아래의 의존성을 추가합니다.

implementation 'androidx.recyclerview:recyclerview:1.2.1'

2. XML 레이아웃에 RecyclerView 추가하기

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

3. 데이터 모델 클래스 생성하기

어댑터(Adapter)에서 사용할 데이터 모델 클래스를 생성합니다.

data class Item(val name: String, val description: String)

4. 어댑터(Adapter) 생성하기

어댑터 클래스를 생성하고, 뷰홀더(ViewHolder)를 구현합니다.

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

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
        return ItemViewHolder(view)
    }

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

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

    class ItemViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun bind(item: Item) {
            itemView.findViewById<TextView>(R.id.nameTextView).text = item.name
            itemView.findViewById<TextView>(R.id.descriptionTextView).text = item.description
        }
    }
}

5. 리사이클러뷰에 어댑터 연결하기

val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
val items = listOf(Item("아이템 1", "아이템 1의 설명"), Item("아이템 2", "아이템 2의 설명"))
val adapter = ItemAdapter(items)
recyclerView.adapter = adapter
recyclerView.layoutManager = LinearLayoutManager(this)

결론

이제 리사이클러뷰를 사용하여 안드로이드 앱에서 목록을 표시할 수 있습니다. 데이터 모델 클래스와 어댑터를 생성하고, 리사이클러뷰에 연결하여 목록을 표시할 수 있습니다. 이를 통해 데이터를 효율적으로 관리하고 사용자 경험을 향상시킬 수 있습니다.

참조: 안드로이드 공식 문서 - 리사이클러뷰