본문 바로가기

~2023

[Android] 상단바(Action bar)에 옵션 메뉴 구현하기

728x90
반응형

<실행 예시>

 

1/2
2/2

 


<풀이>

 

메뉴의 종류로는 옵션 메뉴, 팝업 메뉴, 컨텍스트 메뉴가 있지만 오늘은 상단바(Action bar)에 옵션 메뉴를 추가해보겠다.

옵션 메뉴는 상단바에 있는 옵션 메뉴 버튼을 클릭하거나 Activity가 생성될 때 한 번만 생성된다.

그리고 Activity 당 한 개씩 구현하는데 여러 개의 Activity가 옵션 메뉴를 공유할 경유 제일 큰 부모를 상속 받아 공통적인 기능을 수행한다.

옵션 메뉴를 적용시키기 위해서 menu.xml와 같이 원하는 디자인으로 xml 생성 후에 onCreateOptionsMenu()를 통해 Activity에 inflate를 해준다. 그리고 opOptionsItemSelected()로 버튼 별 이벤트를 추가할 수 있다.

onCreateOptionsMenu()에서 inflate하기 위해 MenuInflater 객체를 만들고 inflate 메소드에 첫번째 매개변수에 xml 리소스 아이디를 전달하고 두번째 매개변수에 onCreateOptionsMenu()의 매개변수로 받은 메뉴 menu를 전달해준 후 return true한다.

이벤트 처리는 기존 onClick 리스너처럼 매개변수로 focus 객체를 받기 때문에 switch문에서 item.getItemId()로 case를 만들어 id에 따라 알맞게 이벤트를 추가해주면 된다.

 


<코드>

onCreateOptionsMenu(): 상단바(Action bar)에 원하는 옵션 메뉴 xml 적용하기

onOptionsItemSelected(): 옵션 메뉴 선택시 발생하는 이벤트 핸들러


main.java
menu.xml

 

 

 

 

 

728x90
반응형