티스토리 뷰

반응형

안드로이드 관련 기본적인 사항들을 나중에 찾기 쉽도록 하니씩 정리해 볼 계획입니다.
첫 번째로 옵션 메뉴에 대한 내용입니다.

안드로이드와 아이폰의 가장 큰 차이는 바로 이 옵션 메뉴가 별도로 있다는 건데요.
옵션 메뉴는 다음 그림과 같이 기본적으로 6개까지 나타낼 수 있습니다.



6개가 넘어게 만들 수도 있는데요.. 이런 경우, 마지막 항목에 "More.." 가 나타나게 되지요.

옵션 메뉴를 만들기 위해 필요한 메소드들을 먼저 정리해 봤습니다.

옵션메뉴 생성
public boolean onCreateOptionsMenu(Menu menu)

실행 중 옵션메뉴 변경
public boolean onPrepareOptionsMenu(Menu menu)

메뉴항목 선택
public boolean onOptionsItemSelected(MenuItem item)

그리고 매개변수로 사용하는 메뉴 객체를 생성하기 위한 메소드는 다음과 같습니다.

메뉴항목 추가
public abstract MenuItem add(int groupId, int itemId, int order, CharSequence title)

서브 메뉴항목 추가
public abstract SubMenu addSubMenu(int groupid, int itemId, int order, CharSequence title)

마지막에 CharSequence title 대신 int titleRes를 사용할수도 있겠죠..

간단하게 메뉴를 생성하고 선택하는 소스를 한번 살펴보도록 하시죠.
단축키로 알파벳 설정하는 부분이나 아이콘 설정하는 부분들을 유의해서 살펴보시면 도움이 됩니다.


onCreateOptionsMenu와 onOptionsItemSelected 메소드를 활용해서 간단하게 구성해봤습니다.
메뉴를 선택하면 간단한 Toast로 메시지를 출력하도록 구성했습니다.

위 예제처럼 프로그래밍으로 메뉴를 구성할 수도 있고, Resource에 Menu를 XML로 만들어서 처리할 수도 있습니다.
XML로 구성해서 처리하는 방법에 대해서 정리해 봅니다.
먼저 res/menu 폴더를 만들고 option_menu.xml을 다음과 같이 구성합니다.


그리고 난 후, 다음과 같이 코딩해 주면 됩니다.


onPrepareOptionsMenu를 사용해 보기 위해 use라는 멤버 변수를 구성했습니다.
그리고 use 값이 1인 경우에, 메뉴의 이름을 변경해 봤습니다.

최종적인 형태는 다음 그림과 같이 나타납니다.

            

 
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함