본문 바로가기

안드로이드/XML

[안드로이드] RecyclerView Click Event

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