안드로이드는 View 를 Long-Touch 할 경우 Context Menu 를 보여지게 할 수 있다. Context Menu 는 크게 두 부분으로 나뉘는데 메뉴의 타이틀을 나타내는 헤더 부분과 사용자가 선택할 수 있는 메뉴 부분으로 나뉜다.
메뉴 위쪽의 헤더 부분은 생략할 수 있고 필요에 따라 Custom View 로 대체할 수 있다. Context Menu 를 간단하게 분리해 보면 헤더의 유무와 헤더의 종류에 따라 분리할 수 있다. 아래는 각각의 경우에 따른 구현 내용이다.
공통으로 사용되는 Botton 의 Context Menu 리소스
메뉴 Header가 없는 Context Menu
메뉴 리소스로 부터 메뉴를 읽어들이기만 하면 위와 같은 심플한 Context Menu 가 출력이 된다.
시스템에서 지원하는 Header를 갖은 Context Menu
Context Menu 생성시 Context Menu 개체의 Header 에 setHeaderIcon 과 setHeaderTitle 함수를 이용하여 아이콘과 타이틀을 지정하면 위와 같이 시스템에서 지원하는 Header가 출력 된다.
Custom View 를 Header로 갖는 Context Menu
메뉴 헤더 부분에 원하는 View를 올릴 수 있는데 이는 Context Menu 개체의 setHeaderView( View v ) 함수를 이용하면 된다. 뷰를 올리게 되면 setHeaderIcon 과 setHeaderTitle 함수가 지정되더라도 이를 무시하고 사용자가 지정한 View 를 메뉴의 헤더로 대체한다.
헤더에 사용된 View Layout 리소스 xml 파일 내용 (context_view_for_button.xml)
메뉴 헤더에 View 를 올리는 코드
메뉴 위쪽의 헤더 부분은 생략할 수 있고 필요에 따라 Custom View 로 대체할 수 있다. Context Menu 를 간단하게 분리해 보면 헤더의 유무와 헤더의 종류에 따라 분리할 수 있다. 아래는 각각의 경우에 따른 구현 내용이다.
공통으로 사용되는 Botton 의 Context Menu 리소스
메뉴 Header가 없는 Context Menu
메뉴 리소스로 부터 메뉴를 읽어들이기만 하면 위와 같은 심플한 Context Menu 가 출력이 된다.
시스템에서 지원하는 Header를 갖은 Context Menu
Context Menu 생성시 Context Menu 개체의 Header 에 setHeaderIcon 과 setHeaderTitle 함수를 이용하여 아이콘과 타이틀을 지정하면 위와 같이 시스템에서 지원하는 Header가 출력 된다.
Custom View 를 Header로 갖는 Context Menu
메뉴 헤더 부분에 원하는 View를 올릴 수 있는데 이는 Context Menu 개체의 setHeaderView( View v ) 함수를 이용하면 된다. 뷰를 올리게 되면 setHeaderIcon 과 setHeaderTitle 함수가 지정되더라도 이를 무시하고 사용자가 지정한 View 를 메뉴의 헤더로 대체한다.
헤더에 사용된 View Layout 리소스 xml 파일 내용 (context_view_for_button.xml)
메뉴 헤더에 View 를 올리는 코드
'Dev Story > Android' 카테고리의 다른 글
[Android Dev.]무료 SVN 호스팅 Google Code 를 이용한 코드 관리하기 (3) | 2010.04.11 |
---|---|
[Android Dev.] 맛있는 토스트 메세지 뿌리기~~ Toast (1) | 2010.04.07 |
[Study Note] Context Menu 사용하기~~ (0) | 2010.04.05 |
[Study Note] 옵션 메뉴 다루기 (0) | 2010.04.04 |
[Study Note] Options 메뉴 제어하기~~ (0) | 2010.04.03 |