# 구현하고자 하는 것
- recycler view 롱 클릭 시 해당 뷰 삭제
# 코드 구현
- MovieAdapter에서 이벤트 리스너 구현
inner class MovieViewHolder(val itemBinding: ListItemBinding)
: RecyclerView.ViewHolder(itemBinding.root) {
init {
itemBinding.root.setOnLongClickListener{
longClickListener.onItemLongClick(it, adapterPosition)
}
}
}
interface onItemLongClickListener {
fun onItemLongClick(view: View, position: Int) : Boolean
}
lateinit var longClickListener: onItemLongClickListener
fun setOnItemLongClickListener (listener: onItemLongClickListener) {
this.longClickListener = listener
}
- Main Activity에서 기능을 구현한 listener 객체를 adapter에 전달
val listener = object: MovieAdapter.onItemLongClickListener {
override fun onItemLongClick(view: View, position: Int): Boolean {
val builder = AlertDialog.Builder(this@MainActivity)
builder.setTitle("영화 정보 삭제")
.setMessage("정말 삭제하시겠습니까?")
.setPositiveButton(
"확인"
) { dialog, which ->
movies.removeAt(position)
adapter.notifyDataSetChanged() // 화면 갱신
}
.setNegativeButton(
"취소"
) { dialog, which ->
adapter.notifyDataSetChanged() // 화면 갱신
}
builder.show()
return true
}
}
adapter.setOnItemLongClickListener(listener)
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
'전공 > Android' 카테고리의 다른 글
| [영화 정보 앱 만들기] 05. 정보 수정하기 (0) | 2024.06.20 |
|---|---|
| [영화 정보 앱 만들기] 04. 데이터 추가하기 (0) | 2024.06.20 |
| [영화 정보 앱 만들기] 02. 데이터와 recycler view (0) | 2024.06.19 |
| [영화 정보 앱 만들기] 01. 레이아웃 및 메뉴 설정 (0) | 2024.06.19 |
| 대화 상자 생성 (0) | 2024.06.08 |














