[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
메서드를 호출합니다.
사용자에게 북마크 상태 표시하기
마지막으로, 사용자에게 각 아이템의 북마크 상태를 표시할 방법이 필요합니다. 이를 위해 각 아이템 뷰에 북마크 상태를 나타내는 아이콘 또는 색상을 표시하는 기능을 추가할 수 있습니다.
이처럼, 리사이클러뷰에서 아이템에 북마크 기능을 추가하는 단계를 소개했습니다. 이 기능을 확장하거나 사용자 인터페이스를 개선하여 앱에 더 많은 기능을 추가할 수 있습니다.