<실행 예시>
<풀이>
메뉴의 종류로는 옵션 메뉴, 팝업 메뉴, 컨텍스트 메뉴가 있지만 오늘은 상단바(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(): 옵션 메뉴 선택시 발생하는 이벤트 핸들러
'~2023' 카테고리의 다른 글
[Android] onClick()으로 팝업 메뉴 활성화 (0) | 2021.11.17 |
---|---|
[Android] Context Menu의 두 가지 모드 - Floating, Action (0) | 2021.11.17 |
[Python] 백준 16173번 16174번 문제, 점프왕 쩰리 시리즈 (0) | 2021.11.17 |
[Android] xml이 아닌 inflate를 사용해 View 꾸미기 (0) | 2021.11.16 |
[Git] GitHub에 대용량 파일 업로드 하기 (Git lfs) (0) | 2021.11.12 |