[kotlin] 리사이클러뷰 아이템 클릭 이벤트 처리하기
리사이클러뷰에서 아이템을 클릭했을 때 해당 이벤트를 처리하려면 RecyclerView
의 OnItemClickListener
를 구현해야 합니다.
1. 리사이클러뷰 어댑터(Adapter)에서 인터페이스 정의하기
interface OnItemClickListener {
fun onItemClick(position: Int)
}
위와 같이 인터페이스를 정의하여, 아이템 클릭 이벤트를 처리할 수 있는 콜백 메서드를 선언합니다.
2. 어댑터에서 인터페이스 구현하기
리사이클러뷰 어댑터에서 위에서 정의한 OnItemClickListener
을 구현합니다.
class MyAdapter(private val itemClickListener: OnItemClickListener) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
// ...
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
// ...
holder.itemView.setOnClickListener {
itemClickListener.onItemClick(position)
}
}
}
onBindViewHolder
에서 아이템 뷰에 클릭 리스너를 설정하여, 클릭 시에 정의한 콜백 메서드를 호출합니다.
3. 액티비티(Activity) 또는 프래그먼트(Fragment)에서 클릭 이벤트 처리하기
해당 어댑터를 사용하는 액티비티 또는 프래그먼트에서 클릭 이벤트를 처리합니다.
class MyActivity : AppCompatActivity(), OnItemClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
// ...
val adapter = MyAdapter(this)
recyclerView.adapter = adapter
}
override fun onItemClick(position: Int) {
// 클릭한 아이템의 위치(position)에 따른 작업 수행
Toast.makeText(this, "Clicked item at position $position", Toast.LENGTH_SHORT).show()
}
}
위와 같이 액티비티나 프래그먼트에서 OnItemClickListener
을 구현하고 해당 인터페이스의 메서드를 오버라이드하여 클릭 이벤트를 처리합니다.
이제 리사이클러뷰의 아이템 클릭 이벤트를 효과적으로 처리할 수 있습니다.
결론
리사이클러뷰에서 아이텤 클릭 이벤트를 처리하기 위해서는 인터페이스를 정의하고 어댑터에서 구현하며, 액티비티나 프래그먼트에서 해당 클릭 이벤트를 처리하는 방식을 사용합니다. 이를 통해 리사이클러뷰의 아이템 클릭 이벤트를 쉽게 처리할 수 있습니다.
參考文献: