안드로이드 왼쪽 하단부에 있는 하드웨어 버튼인 '메뉴(Menu)' 키를 누르면
지정된 메뉴들이 나타납니다. 옵션 메뉴라고 하는데, 이 메뉴들을 상황에 따라 동적으로 구성할 필요가 있을 때가 있습니다.
이럴 때는 다음처럼 할 수 있습니다.
(코드의 일부만 발췌입니다. 따라서 아래 코드를 보시고 상황에 맞게 넣어주셔야 합니다.)
01.// Option Menu Item02.private static final int MENU_OPEN_WEB_BROWSER = Menu.FIRST + 1;03.private static final int MENU_ADD_QUEUE = MENU_OPEN_WEB_BROWSER + 1;04.private static final int MENU_PLAY_QUEUE = MENU_ADD_QUEUE + 1;05.private static final int MENU_LIST = MENU_PLAY_QUEUE + 1;06.private static final int MENU_CONNECT_INFO = MENU_LIST + 1;07.private static final int MENU_DETAILS = MENU_CONNECT_INFO + 1;08. 09.// Dynamic Option Menu10.private Menu m_Menu = null;11. 12.@Override13.public boolean onCreateOptionsMenu(Menu menu) 14.{15. m_Menu = menu;16. 17. CheckProperOptionMenu();18. 19. return true;20.}21. 22.private void CheckProperOptionMenu()23.{24. m_Menu.removeItem(MENU_ADD_QUEUE);25. m_Menu.removeItem(MENU_PLAY_QUEUE);26. m_Menu.removeItem(MENU_LIST);27. m_Menu.removeItem(MENU_CONNECT_INFO);28. m_Menu.removeItem(MENU_DETAILS);29. 30. if (bIsCurrentFlag == true)31. {32. m_Menu.add(Menu.NONE, MENU_PLAY_QUEUE, Menu.NONE, R.string.menu_play_queue)33. .setIcon(R.drawable.sk_icon_addqueue);34. }35. else36. {37. m_Menu.add(Menu.NONE, MENU_ADD_QUEUE, Menu.NONE, R.string.menu_add_to_queue)38. .setIcon(R.drawable.sk_icon_addqueue);39. }40. 41. m_Menu.add(Menu.NONE, MENU_LIST, Menu.NONE, R.string.menu_list)42. .setIcon(R.drawable.sk_icon_list);43. m_Menu.add(Menu.NONE, MENU_CONNECT_INFO, Menu.NONE, R.string.menu_connection_info)44. .setIcon(R.drawable.sk_icon_connectioninfo);45. m_Menu.add(Menu.NONE, MENU_DETAILS, Menu.NONE, R.string.menu_details)46. .setIcon(R.drawable.sk_icon_details);47.}
이런 식으로 작성하시면 상황에 맞는 옵션 메뉴를 구성하실 수 있습니다.