[kotlin] 코틀린 안드로이드 리사이클러뷰에서 아이템 선택 기능 추가하기

안드로이드 앱을 개발할 때 리사이클러뷰는 자주 사용되는 UI 컴포넌트 중 하나입니다. 사용자가 아이템을 선택할 수 있는 기능은 매우 유용하며, 이 기능을 코틀린으로 간단하게 추가할 수 있습니다. 이번 포스트에서는 리사이클러뷰에서 아이템을 선택하는 방법에 대해 알아보겠습니다.

1. 리사이클러뷰 레이아웃 파일에 선택 모드 추가하기

리사이클러뷰의 아이템을 선택하기 위해서는 선택 모드가 필요합니다. 선택 모드를 추가하기 위해 리사이클러뷰 레이아웃 파일에 choiceMode를 추가합니다.

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

2. 아이템 클릭 리스너 추가하기

리사이클러뷰 어댑터에서 아이템 클릭 이벤트를 처리하기 위해 아이템 클릭 리스너를 추가합니다.

class MyAdapter(private val itemList: List<String>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {

    var selectedItemPosition = -1

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

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bind(itemList[position])
        holder.itemView.isActivated = selectedItemPosition == position
    }

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

    inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun bind(item: String) {
            itemView.textView.text = item
            itemView.setOnClickListener {
                selectedItemPosition = adapterPosition
                notifyItemRangeChanged(0, itemList.size)
            }
        }
    }
}

3. 선택된 아이템 표시하기

onBindViewHolder에서 선택된 아이템을 표시하고, 아이템이 클릭될 때마다 선택된 아이템의 위치를 업데이트합니다.

4. 선택된 아이템 사용하기

이제 선택된 아이템을 사용할 수 있습니다. 예를 들어, 선택된 아이템을 삭제하거나 다른 작업을 수행할 수 있습니다.

이제 리사이클러뷰에서 아이템을 선택하는 기능을 쉽게 추가할 수 있습니다. 이러한 기능은 사용자 경험을 향상시키고 유용하게 만들어줍니다.

더 많은 안드로이드 및 코틀린 관련 팁은 Android Developers 웹사이트를 참고하시기 바랍니다.