안드로이드에서는 한 화면에서 모두 표시할 수 없는 여러 기능에 접근하기 위한 방법 중 하나로 메뉴(Menu)를 사용합니다. 메뉴의 종류에는 메뉴 키를 누르면 나타나는 옵션 메뉴(Option Menu)와 리스트 항목 등을 길게 클릭했을 때 나타나는 컨텍스트 메뉴(Context Menu)가 있습니다.
옵션 메뉴는 액티비티의 전반적인 기능과 관련된 메뉴 항목을 제공하는 반면 컨텍스트 메뉴는 선택한 항목과 관련된 메뉴항목을 제공합니다.
메뉴의 생성과 관리
옵션 메뉴 |
컨텍스트 메뉴 |
옵션 메뉴는 액티비티의 전반적인 기능과 관련된 메뉴 항목을 제공하는 반면 컨텍스트 메뉴는 선택한 항목과 관련된 메뉴항목을 제공합니다.
메뉴의 생성과 관리
옵션 메뉴가 화면에 표시되기까지의 과정
1. 메뉴 생성 - onCreateOptionsMenu(Menu menu)
메뉴가 '최초로' 화면에 표시되기 전에 호출됩니다. 메뉴 항목을 만들어주는 역할을 합니다.
2. 메뉴 준비 - onPrepareOptionsMennu(Menu menu)
현재 상태에 따라 특정 메뉴 항목을 활성화/비활성화시켜야 할 때가 있습니다. (예를 들어 메시지가 없을 때는 '메시지 전체 삭제' 메뉴가 비활성화됩니다.) 여기서는 상태에 따라 동적으로 메뉴 항목을 영향을 주는 작업을 구현합니다.
3. 메뉴 표시
앞의 과정들을 통해 실제로 메뉴가 화면에 표시되고, 사용자가 메뉴를 선택하여 원하는 동작을 수행할 수 있게 되었습니다.
옵션 메뉴가 이와 같이 메뉴 생성, 준비 과정을 거쳐 화면에 표시되는 것에 반해, 컨텍스트 메뉴(Context Menu)는 별도의 준비 과정 없이 메뉴가 표시될 대 마다 onCreateContextMenu() 메서드가 호출되며, 메뉴 생성과 관련된 동작은 모두이 메서드 내에서 구현합니다.
메뉴 선택 처리
메뉴가 제 기능을 발휘하려면 메뉴 항목을 선택했을 때의 동작을 구현해야 합니다.
1. 옵션 메뉴 선택 처리
옵션 메뉴의 항목 선택 처리는 onOptionsItemSelected(MenuItem) 메서드에서 담당합니다. 인자로 넘겨받은 MenuItem 인스턴스를 통해 사용자가 어떤 메뉴를 선택했는지 알아내고, 각 항목에 알맞은 동작을 구현합니다.
2. 컨텍스트 메뉴 선택 처리
컨텍스트 메뉴의 항목 선택 처리는 onContextItemSelected(MenuItem)에서 담당합니다. 옵션 메뉴와 마찬가지로 인자로 넘겨받은 MenuItem 인스턴스를 통해 사용자가 선택한 메뉴 항목을 알아내고, 각 항목에 알맞은 동작을 구현합니다.
컨텍스트 메뉴는 선택한 항목의 정보를 추가로 알아내기 위해 AdapterContextMenuInfo 객체를 사용하기도 합니다.
1. 옵션 메뉴 선택 처리
옵션 메뉴의 항목 선택 처리는 onOptionsItemSelected(MenuItem) 메서드에서 담당합니다. 인자로 넘겨받은 MenuItem 인스턴스를 통해 사용자가 어떤 메뉴를 선택했는지 알아내고, 각 항목에 알맞은 동작을 구현합니다.
2. 컨텍스트 메뉴 선택 처리
컨텍스트 메뉴의 항목 선택 처리는 onContextItemSelected(MenuItem)에서 담당합니다. 옵션 메뉴와 마찬가지로 인자로 넘겨받은 MenuItem 인스턴스를 통해 사용자가 선택한 메뉴 항목을 알아내고, 각 항목에 알맞은 동작을 구현합니다.
컨텍스트 메뉴는 선택한 항목의 정보를 추가로 알아내기 위해 AdapterContextMenuInfo 객체를 사용하기도 합니다.
'프로그래밍 > Android' 카테고리의 다른 글
컨텍스트 메뉴(Context Menu) (0) | 2011.08.22 |
---|---|
옵션메뉴 (0) | 2011.08.22 |
Toast(토스트) (0) | 2011.08.22 |
ListView - 리스트뷰 (0) | 2011.08.22 |
AutoCompleteTextView (0) | 2011.08.22 |