Android RecyclerView에서 Context Menu 사용하기

pass·2023년 2월 21일
0

Android

목록 보기
5/41

🖐 Fragment 안에 있는 Recyclerview에서 context menu 사용하기


✔ 순서

Adapter -> ViewHolder class

  1. OnCreateContextMenuListener implement
  2. onCreateContextMenu override
  3. menu 생성 혹은 menu layout inflate (이 예제에서는 메뉴 생성)

Adapter를 등록해주는 Fragment

  1. onContextItemSelected override



✔ Adapter class 내부에 viewHolder class를 만들어 사용할 때 예시

    class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), OnCreateContextMenuListener {
        var cardLayout: ConstraintLayout = itemView.findViewById((R.id.card_layout))
        var itemAlarmTime: TextView = itemView.findViewById(R.id.alarm_time)
        var itemAlarmPlaylist: TextView = itemView.findViewById(R.id.playlist_name)
        var itemSwitchToggle: SwitchCompat = itemView.findViewById(R.id.alarm_switch)

        init {
            cardLayout.setOnCreateContextMenuListener(this)
        }

        override fun onCreateContextMenu(
            menu: ContextMenu?,
            v: View?,
            menuInfo: ContextMenu.ContextMenuInfo?
        ) {
            menu?.add(bindingAdapterPosition, 121, 0, "삭제")
        }
    }
  • OnCreateContextMenuListener implement
  • context menu를 사용하고 싶은 item에 setOnCreateContextMenuListener() 적용
  • onCreateContextMenu() 를 override 하여 menu 생성
  • 위 예제는 menu를 간단하게 생성하는 방법을 보여주고 있고, menu layout으로 구현하는 방법도 있음



✔ Fragment 에서 onContextItemSelected override

    override fun onContextItemSelected(item: MenuItem): Boolean {
        when(item.itemId) { 
        	//@TODO
        }
        return true
    }
profile
안드로이드 개발자 지망생

0개의 댓글