[kotlin] 리사이클러뷰로 리스트 화면 만들기

Kotlin을 사용하여 안드로이드 앱을 개발할 때, 리사이클러뷰를 사용하여 리스트 화면을 만들 수 있습니다. 리사이클러뷰는 많은 수의 항목을 표시할 때 성능을 향상시키고 메모리를 절약할 수 있는 효율적인 방법입니다.

1. 리사이클러뷰 추가

안드로이드 프로젝트에서 build.gradle 파일에 아래 의존성을 추가하여 리사이클러뷰 라이브러리를 포함시킬 수 있습니다.

implementation 'androidx.recyclerview:recyclerview:1.2.0'

2. 리사이클러뷰 레이아웃 추가

리사이클러뷰를 사용하기 위해, 액티비티의 레이아웃 XML 파일에 리사이클러뷰 위젯을 추가합니다.

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:padding="8dp"
    tools:listitem="@layout/item_layout" />

3. 어댑터 및 뷰 홀더 생성

리사이클러뷰에서는 어댑터와 뷰 홀더를 생성하여 데이터를 표시합니다. 데이터 항목을 표시할 뷰를 위한 레이아웃 XML 파일도 준비해야 합니다.

data class Item(val name: String)

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

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

    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 getItemCount(): Int {
        return items.size
    }

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

4. 액티비티에서 리사이클러뷰 설정

마지막으로, 액티비티에서 리사이클러뷰와 어댑터를 설정합니다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val items = listOf(Item("Item 1"), Item("Item 2"), Item("Item 3"))

        val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
        recyclerView.layoutManager = LinearLayoutManager(this)
        recyclerView.adapter = ItemAdapter(items)
    }
}

이제 위의 단계를 따라 하면 Kotlin으로 리사이클러뷰를 사용하여 리스트 화면을 만들 수 있습니다.

참고 문헌: