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 |