RecyclerView 목록 클릭 이벤트의 방법은 두 가지가 있다.
첫 번째는 Adapter 내부에서 setOnClickEvent를 이용하는 것
두 번째는 인터페이스를 이용하는 것이다.
인터페이스를 이용하면 Adapter가 아닌 Activity 또는 Fragment에서 이벤트에 대한 작업을 실행할 수 있다.
Adapter
interface OnItemClickListener {
fun onItemClicked(data: String?)
}
// OnItemClickListener 참조 변수 선언
private var itemClickListener: OnItemClickListener? = null
// OnItemClickListener 전달 메소드
fun setOnItemClickListener(listener: OnItemClickListener?) {
itemClickListener = listener
}
inner class ViewHolder(view: View): RecyclerView.ViewHolder(view) {
init {
binding.root.setOnClickListener(View.OnClickListener {
var pos : Int = adapterPosition
itemClickListener?.onItemClicked(array[pos]);
})
}
fun bind(data: T){
}
}
Activity & Fragment
val adapter = Adapter().apply {
setData(null)
}
adapter.setOnItemClickListener(object : Adapter.OnItemClickListener {
override fun onItemClicked(data: String?) {
//TODO
}
})
'안드로이드 > XML' 카테고리의 다른 글
SearchView (2) | 2024.07.14 |
---|---|
TimePicker (1) | 2024.07.14 |
[Layout] CoordinatorLayout (0) | 2024.07.13 |
[안드로이드] RecyclerView 리사이클러뷰 개념 및 사용법 (0) | 2023.11.03 |