[kotlin] 리사이클러뷰에서 아이템에 북마크(bookmark) 기능 추가하기

리사이클러뷰는 안드로이드 앱에서 데이터 리스트를 표시하는 데 자주 사용됩니다. 여기에 아이템에 북마크를 추가하는 간단한 방법을 소개하겠습니다.

데이터 모델에 북마크 속성 추가하기

먼저, 북마크 상태를 나타내는 속성을 데이터 모델에 추가해야 합니다. Kotlin으로 작성된 데이터 클래스를 사용하여 각 아이템에 북마크 상태를 저장할 수 있습니다.

data class Item(
    val id: Int,
    val name: String,
    var isBookmarked: Boolean
    // 다른 속성들
)

위의 코드에서 isBookmarked는 각 아이템의 북마크 상태를 나타내는 속성입니다.

리사이클러뷰 어댑터에서 북마크 토글 구현하기

다음으로, 리사이클러뷰의 어댑터 클래스에서 각 아이템의 북마크 상태를 토글할 수 있는 기능을 구현해야 합니다. 아래는 간단한 예시입니다.

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

    // 뷰홀더와 뷰 바인딩 등의 코드 구현

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val currentItem = items[position]
        // 북마크 토글 버튼 클릭 리스너 설정
        holder.bookmarkButton.setOnClickListener {
            currentItem.isBookmarked = !currentItem.isBookmarked
            notifyDataSetChanged()
        }
        // 나머지 뷰 홀더 설정 등의 코드 구현
    }
}

위의 코드에서 onBindViewHolder 메서드 내부에서 북마크 토글 버튼에 클릭 리스너를 설정하고, 클릭 시 해당 아이템의 북마크 상태를 반전시킨 후 어댑터에 변경을 알리는 notifyDataSetChanged 메서드를 호출합니다.

사용자에게 북마크 상태 표시하기

마지막으로, 사용자에게 각 아이템의 북마크 상태를 표시할 방법이 필요합니다. 이를 위해 각 아이템 뷰에 북마크 상태를 나타내는 아이콘 또는 색상을 표시하는 기능을 추가할 수 있습니다.

이처럼, 리사이클러뷰에서 아이템에 북마크 기능을 추가하는 단계를 소개했습니다. 이 기능을 확장하거나 사용자 인터페이스를 개선하여 앱에 더 많은 기능을 추가할 수 있습니다.