Menu (메뉴)-옵션메뉴/컨텍스트 메뉴

CODEDRAGON Development/Android

반응형

   

Menu 종류

옵션메뉴(Option Menu)

단말의 메뉴버튼을 눌렀을 때 표시되는 메뉴.

   

옵션메뉴는 각각의 화면마다 설정할 수 있습니다.

컨텍스트메뉴(Context Menu)

항목을 길게 눌렀을 때 표시되는 메뉴.

   

컨텍스트메뉴는 각각의 뷰마다 설정할 수 있습니다.

   

   

Menu추가

옵션메뉴와 컨텍스트 메뉴를 추가하기 위해서는 두개의 메소드를 재정의함으로써 메뉴 아이템을 추가할 수 있습니다.

public boolean onCreateOptionsMenu(Menu menu)

public boolean onOptionsItemSelected(MenuItem item)

   

Menu객체의 Add메소드 인자

인자

설명

groupId

메뉴 아이템 그룹 지정, 미지정시 Menu.NONE=0

itemId

메뉴 아이템 부여된 ID

order

메뉴 아이템이 표시될 순서, 미지정시 Menu.NONE=0

title

메뉴 아이템이 표시될 텍스트        

   

   

   

Menu관련 멤버 메소드

onCreateOptionsMenu( )

옵션메뉴 추가

onOptionsItemSelected( )

컨텍스트메뉴 추가

onPrepareOptionsMenu( )

화면의 메뉴 변경

onOptionItemSelected( )

메뉴 아이템 선택시 자동호출되는 메소드

   

   

   

/menu/main.xml

  • 메뉴를 정의하는 XML파일
  • 가장 상위에 <menu>태그를 가지고 있습니다.
  • 각각의 메뉴 아이템은 <item>태그로 정의합니다.
  • 메뉴를 정의한 XML파일은 onCreateOptionsMenu()메소드가 호출될 때 인플레이터 객체를 사용하여 메모리에 로딩합니다.

   

item 속성

android:id

각 메뉴 아이템을 고유한 ID로 구분

android:icon

메뉴 아이템에 보일 아이콘 설정

android:title

메뉴 아이템에 보일 타이틀 설정

android:showAsAction

메뉴가 어떤 방식으로 표시할지를 설정

android:orderInCategory

여러 액션 아이템이 나열되는 순서를 정의하는 속성

0이 우선순위가 가장 높음

   

android:showAsAction 속성값

always

항상 액션바에 아이템을 추가하여 표시

never

기본값

액션바에 아이템을 추가하여 표시하지 않습니다.

ifRoom

액션바에 여유공간이 있을 때만 아이템을 표시합니다.

withText

설정된 제목을 함께 표시합니다.

collapseActionView

아이템에 설정한 뷰(actionViewLayout으로 설정한 뷰)의 아이콘만 표시합니다.