RecyclerView나 ListView와 같은 리스트 뷰 위젯의 아이템 클릭 이벤트를 처리한다.
.
.
.
onItemClickListener:
아이템을 일반적으로 클릭할 때 발생하는 단순한 클릭 이벤트를 처리한다. 즉, 아이템을 한 번 클릭했을 때 동작.
onItemLongClickListener:
아이템을 길게(롱 클릭) 클릭했을 때 발생하는 이벤트를 처리. 아이템을 길게 클릭했을 때 발생하는 이벤트로, 일반적으로 길게 클릭하면 컨텍스트 메뉴나 팝업 메뉴 등을 표시하는 데 사용된다.
.
.
.
onItemClickListener:
아이템을 클릭한 순간에 즉시 호출
onItemLongClickListener:
아이템을 길게 클릭한 순간에 호출됩니다.
.
.
.
onItemClickListener:
주로 아이템 선택하고 그에 대한 상세 정보를 보여주는 데 사용된다.
예를 들어, 아이템을 클릭하면 해당 아이템의 세부 정보 화면으로 이동한다.
onItemLongClickListener:
길게 클릭한 아이템에 대한 추가 작업을 수행할 때 사용된다.
예를 들어, 아이템을 길게 클릭하면 삭제 또는 수정 옵션을 제공하는 컨텍스트 메뉴를 표시한다.
.
.
.
.
.
onItemClickListener 는 CallBack Listener 이다.
CallBack 이란 유저가 RecyclerView나 ListView 의 한 Row (행) 클릭 시, 시스템에서 유저가 클릭한 것에 대한 반응을 유저에게 알려주는 것.
따라서, onItemClickListener 는, 그 Row 에 해당하는 position, view, adapterview 등을 시스템에서 유저에게 전달해주는 메서드.
다음은 Recycler View 의 아이템을 클릭할 때, 실행되는 동작을 정의하는 코드이다.
// adapter.itemClick에 클릭 리스너를 할당
adapter.itemClick = object : ItemAdapter.ItemClick {
override fun onClick(view: View, position: Int) {
// 클릭 이벤트 처리
// 새로운 화면으로 이동하기 위한 Intent를 생성
val intent = Intent(this@MainActivity, DetailActivity::class.java)
// 선택한 아이템의 위치(position)을 인텐트에 추가
intent.putExtra(Constants.ITEM_INDEX, position)
// 선택한 아이템의 데이터를 인텐트에 추가
intent.putExtra(Constants.ITEM_OBJECT, dataList[position])
// 생성한 인텐트 실행
activityResultLauncher.launch(intent)
}
}
클릭 이벤트 발생 시, 선택한 아이템의 position 과 데이터를 담아 새로운 화면(DetailActivity)로 이동한다. 이동을 위한 Intent 를 생성하고, putExtra 메서드를 사용하여 데이터를 추가한다.
생성한 Intent를 실행하여 다른 화면으로 전환한다.