[안드로이드] 메뉴 특성

반응형





이어지는 글
메뉴 생성         
컨텍스트 메뉴     
XML로 메뉴 정의하기   
메뉴의 특성                  ◀ 현재 위치
메뉴 아이템 인텐트


읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥



메뉴 특성에 대한 내용입니다.



메뉴 그룹

메뉴에 신규 아이템을 추가할 때, 하나의 그룹에 각각의 아이템을 포함할 수가 있는데요,
메뉴 그룹은 보여지는 여부(Visible) , 활성화 상태 (enable) ,
체크 가능 여부 (checkable) , 등을 지정할 수 있는 메뉴 아이템들의 모음입니다.

그룹은 정수 또는 XML 리소스ID 로 정의되어집니다.

add() 메소드로 groupId 를 사용하면 메뉴아이템이 해당 그룹에 추가됩니다. 또한 setGroupVisible() 메소드를 사용해서 전체 그룹을 보이게 하거나 숨기게 할 수 있지요.


setGroupEnabled() 메소드를 사용하면 해당 그룹을 활성화 또는 비활성화 할 수 있습니다.

setGroupCheckable() 메소드는 아이템들을 체크될 수 있는지의 여부를 설정할 수 있게 해줍니다.




체크 가능한 메뉴 아이템

메뉴 아이템은 선택상태를 켜고 끄는 인터페이스로 체크박스, 라디오버튼을 가지고 표시될 수 있습니다.




아이콘 메뉴에 있는 메뉴 아이템은 체크박스나, 라디오버튼을 표시할 수 없습니다. 따라서 아이콘 메뉴에 있는 아이템을 체크 가능하게하려면 직접적으로 ' On/Off ' 등의 상태에 따라 아이콘 또는 텍스트를 바꿔가면서 표시해야 되겠네요.


하나의 아이템을 체크가능하게 하려면 setCheckable() 메소드를 사용합니다.




소스코드에서 true 로 설정하면 메뉴 아이템을 체크박스로 보여주게 됩니다. ( 단, 아이콘 메뉴가 아니어야 하겠지요 ) . 아이템이 선택되면 onOptionsItemSelected() 메소드가 호출되며, 이곳에서 체크 상태를 설정할 수 있습니다.

또, isChecked() 메소드로 현재 체크 상태를 얻어올 수 있고, setChecked() 메소드로 체크 상태를 설정할 수 있습니다.







라디오버튼 아이템 그룹을 만들기 위해선, 그룹 ID를 각 메뉴 아이템에 할당하고 setGroupCheckable() 메소드를 호출합니다. 이렇게 하면 그룹 전체가 체크가능상태로 되기 때문에 각 메뉴별로 setCheckable() 메소드를 호출할 필요는 없습니다.



setGroupCheckable() 메소드에서 첫번째 인자는 그룹 ID 이며 , 두번째 인자는 그룹아이템들의 체크가능여부, 세번째인자는 상호배타적 체크 여부 ( true 면 라디오버튼, false면 체크박스 겠군요. )  입니다.

체크가능 메뉴 아이템은 세션 기반에서만 사용된다고 하니 모바일기기에 저장되지 않는다고 합니다. 따라서 저장하려는 설정이 있다면 프리퍼런스(Preference)를 사용하여 데이터를 저장해야 하며, 이땐 PreferenceActivity 를 사용합니다.




단축키 ( Shortcut Key )

문자 및 숫자를 사용하는 단축키들은
◈ setAlphabeticShortcut(char) - 문자 단축키
◈ setNumbericShortcut(int) - 숫자 단축키
◈ setShortcut(char, int) - 문자,숫자 모두

를 사용하여 메뉴 아이템들에 추가하면 됩니다.


인자로 받을 수 잇는 것이 char 이기 때문에 큰 따옴표(" ") 가 아닌 작은 따옴표 ( ' ' ) 로 감싸져 있다는 점에 주의하세요.

마지막으로 단축키는 컨텍스트 메뉴안의 아이템에는 추가할 수 없습니다.


잘 추가 되었네요 ^^








관련글


반응형

댓글

Designed by JB FACTORY