Deperecated/Android_강의

안드로이드 - PopupMenu

누알라리 2020. 2. 13. 21:00
1. PopupMenu란?

- 개발자가 원할 때 원하는 곳에 메뉴를 띄울 수 있다.

 

2. 리스너

OnMenuItemClickListner : 메뉴의 항목을 클릭했을 때 반응하는 리스너

 

    // 팝업 메뉴에 리스너 설정(중첩 클래스)
    var listner = PopupListner()
    pop.setOnMenuItemClickListener(listner)   
    
    
    inner class PopupListner:PopupMenu.OnMenuItemClickListener{
        override fun onMenuItemClick(item: MenuItem?): Boolean {
            when(item?.itemId)
            {
                R.id.item1 ->
                    textView.text = "지존"
                R.id.item2 ->
                    textView.text = "존예"
                R.id.item3 ->
                    textView.text = "현지"
            }
            return true
        }
    }
            // 팝업 메뉴에 리스너 설정(람다식)
            // 람다식에서의 return 값은 밑에 false를 넣어주면 알아서 그 값만 들어간다.
            pop.setOnMenuItemClickListener { item ->
                when(item?.itemId)
                {
                    R.id.item1 ->
                        textView.text = "지존"
                    R.id.item2 ->
                        textView.text = "존예"
                    R.id.item3 ->
                        textView.text = "현지"
                }
                false
            }

 

3. 버튼을 클릭하면 텍스트뷰에 팝업 메뉴 나오는 예제

1. 버튼의 리스너에 팝업 메뉴 생성

        // 버튼을 클릭하면 텍스트뷰에 팝업 메뉴를 띄우는 형식.
        button.setOnClickListener { view ->
            var pop = PopupMenu(this, textView)

            //팝업 메뉴 생성
            menuInflater.inflate(R.menu.popup_menu, pop.menu)
            
           //팝업 메뉴 SHOW
            pop.show()
       }

 

2. 팝업메뉴의 항목을 클릭하면 텍스트뷰에 그 항목이 무엇인지 출력하게 함.

        // 버튼을 클릭하면 텍스트뷰에 팝업 메뉴를 띄우는 형식.
        button.setOnClickListener { view ->
            var pop = PopupMenu(this, textView)

            //팝업 메뉴 생성
            menuInflater.inflate(R.menu.popup_menu, pop.menu)

            // 팝업 메뉴에 리스너 설정(중첩 클래스)
            var listner = PopupListner()
            pop.setOnMenuItemClickListener(listner)

            // 팝업 메뉴에 리스너 설정(람다식)
            // 람다식에서의 return 값은 밑에 false를 넣어주면 알아서 그 값만 들어간다.
            pop.setOnMenuItemClickListener { item ->
                when(item?.itemId)
                {
                    R.id.item1 ->
                        textView.text = "지존"
                    R.id.item2 ->
                        textView.text = "존예"
                    R.id.item3 ->
                        textView.text = "현지"
                }
                false
            }
            //팝업 메뉴 SHOW
            pop.show()
        }

'Deperecated > Android_강의' 카테고리의 다른 글

안드로이드 - 메시징 - Toast  (0) 2020.02.13
안드로이드 - ActionBar  (0) 2020.02.13
안드로이드 - ContextMenu  (0) 2020.02.13
안드로이드 - 메뉴 - OptionMenu  (0) 2020.02.12
안드로이드 - ViewPager  (1) 2020.02.12