안드로이드 메뉴 사용하기 (How to use Menu Inflation)

2013. 12. 31. 15:05Programing/Android / Java

- XML (\res\menu\ 폴더에 저장 됨)에 메뉴의 형태를 기술

- 소스 코드 내부에서 XML 파일을 inflate하여 메뉴의 초기 모양을 구성
- 어플리케이션 로직과 디자인을 분류함으로 간결한 코드를 만들 수 있는 장점이 있음
- , menu XML 문서는 메뉴 생성 visual tool (eclipse ADT plug-in) 사용해 쉽게 만들거나 수정 가능

  

1. <menu>

- menu xml 문서의 root element
- <item> <group> element를 포함(nest)
- submenu구성을 위해 <item> element 밑에 포함
  

1. <group>

-  <group>는 <item>들을 그룹으로 묶기 위해 사용되는 element이다.

- 지원 attribute

android:id 

: 그룹별로 유일한 구분자(identifier)를 설정

android:menuCategory 

: 그룹의 우선순위를 지정 (alternative, secondary, container, system)

  각각의 값은 Menu클래스에 pre-define된 상수
  CATEGORY_ALTERNATIVE / CATEGORY_SECONDARY, CATEGORY_CONTAINER / CATEGORY_SYSTEM 에 대응

  > item 별 우선 순위가 부여되지 않은 item들은 순서대로 표현된다.
android:orderInCategory 

: 같은 category 안에서의 우선순위를 0-based integer로 설정.

android:checkableBehavior 

: group 내부의 item들이 check가능한지 설정. 유효 값

  - none

  - all(checkbox처럼 각 아이템이 동시에 check될 수 있는 그룹)
  - single(radio button처럼 한번에 하나만 check되는 그룹)

android:visible 

그룹의 시각적 활성화 여부를 결정  -  : true,false

android:enabled 

그룹의 활성화 여부를 결정  -  : true, false

 

 3. <item>

- <item>은 메뉴에서 사용자가 선택 가능한 element

- group, menu(submenu) element를 포함 가능.
- 지원 attribute

android:id 

: item별 유일한 구분자 설정.

android:menuCategory 

: <group> element menuCategory와 동일.

orderInCategory 

같은 category 안에서의 item간 우선순위 0-based integer로 설정.

android:title 

: item이 화면에 보여지는 이름을 설정.

android:titleCondensed 

간결한 title. Option Menu titie대신 이 속성을 사용

android:icon 

: item icon을 설정. (. "@drawable/icon" )

android:alphabeticShortcut 

: item의 쇼트키를 영문자 중 지정. 유효 값은 영문 알파벳 대소문자 구분 없이 한 글자, \n(enter),\b(delete).

android:numericShortcut 

: item의 쇼트키를 숫자 중 지정. 유효 값은0~9.

android:checkable 

: item check가능한지 설정. 유효 값은 true,false.

android:checked 

메뉴가 처음 표시될 때 item check상태로 표시 할 지 여부 지정. 유효 값은 true, false.

android:visible 

메뉴 item의 시각적 활성화 여부 지정. 유효 값은true, false.

android:enable 

: 메뉴 item의 활성화 여부 지정, 유효 값은 true,false