본문 바로가기

Study/Programming

안드로이드 메뉴 종류와 특징들

Hi


안녕하세요 꼬로미입니당당


안드로이드 메뉴의 종류와 특징들에 대해서 포스팅합니다



메뉴의 종류

옵션 메뉴 : 사용자가 MENU 키를 누를 때 나타나는 메뉴

컨텍스트 메뉴 : 사용자가 화면을 일정시간이상 누르면 나타나는 메뉴

팝업 메뉴 : 사용자가 버튼을 클릭하면 버튼에 붙어서 나타나는 메뉴

*메뉴 리소스가 저장되는 곳은 res/menu 폴더

 



메뉴 팽창

메뉴 리소스를 팽창(inflate)하면 실제 메뉴가 생성, 프로그래밍 객체로 적재한다는 의미

inflate(R.menu.menu, menu) 사용해 작성한 menu.xml 메뉴 리소스 객체로 팽창

 




옵션 메뉴

기본적인 액티비티의 실행환경을 설정하는 메뉴

사용자가 옵션 메뉴를 처음으로 오픈하면 안드로이드는 액티비티의 onCreateOptionsMenu()메소드를 호출,

이 메소드를 재정의해 함수의 매개 변수로 전달된 메뉴 객체에 메뉴 리소스를 적재할 수 있음

메뉴의 소유가 액티비티

setIcon(Drawable icon) : 메뉴 항목의 아이콘을 icon으로 변경

setAlphabeticShortcut(char alphaChar) : 메뉴 항목의 단축키를 설정

 

옵션메뉴 이벤트 처리

사용자가 옵션 메뉴의 항목을 선택하면 액티비티의 onOptionsItemSelected() 호출

매개변수로 사용자가 선택한 항목 전달, 메뉴항목은 getItemId()로 식별

 



컨텍스트 메뉴

사용자가 항목 위에서 오래누르면(long-press) 표시되는 메뉴

컨텍스트 메뉴는 메뉴의 소유주가 뷰 (=뷰의 개수만큼 컨텍스트 메뉴를 가질 수 있음)

 

컨텍스트 메뉴 이벤트 처리

사용자가 컨텍스트 메뉴에서 항목을 선택하면 시스템이 onCreateContextMenu() 호출

onCreateContextMenu()는 컨텍스트 메뉴가 표시될 때마다 새롭게 호출

 



(팝업메뉴)


서브메뉴

사용자가 메뉴 안에서 항목을 선택해 오픈할 수 있는 메뉴

옵션 메뉴나 컨텍스트 메뉴에 서브메뉴를 추가 할 수 있음

 

XML로 서브 메뉴 생성

<menu> 엘리먼트를 <item>의 자식으로 추가해서 생성

 

코드로 서브 메뉴 생성

기존 메뉴에 동적으로 addSubMenu() 사용

 

 




Bye

읽어주셔서 감사드립니다

도움이 되셨다면 덧글을 부탁드립니다헤헤