Android > ActionBar - 상단에 메뉴 추가하기(Action Bar Menu)
등록일 : 2017-07-05 19:02
조회수 : 93,682
이렇게 앱 상단의 액션바에 설정 버튼을 누르면 나오는 메뉴를 만들고자 한다.
굉장히 간단한데, MainActivity에 코드를 몇 줄 추가하면 가능하다.
- 개발 시 사용한 안드로이드 버전은 킷캣으로 안드로이드 버전과 Manifest에서 설정한 테마에 따라 디자인이 다르다.
- MainActivity.java에서 onCreate 하단에 아래의 코드를 추가하면 위와 같이 메뉴가 생성된다.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 메뉴 추가
menu.add(0, 0, Menu.NONE, "About");
menu.add(0, 1, Menu.NONE, "슈앤찡");
// SubMenu 추가
SubMenu subMenu = menu.addSubMenu("설정");
// 메뉴 (0~7중) 1을 누르면 나오는 SubMenu
subMenu.add(1, 5, Menu.NONE, "하나");
subMenu.add(1, 6, Menu.NONE, "둘");
subMenu.add(1, 7, Menu.NONE, "셋");
menu.add(0, 2, Menu.NONE, "삭제");
menu.add(0, 3, Menu.NONE, "메일보내기");
menu.add(0, 4, Menu.NONE, "카메라");
return true
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
Toast.makeText(MainActivity.this, "About", Toast.LENGTH_SHORT).show();
break
case 1:
Toast.makeText(MainActivity.this, "슈앤찡", Toast.LENGTH_SHORT).show();
break
case 2:
Toast.makeText(MainActivity.this, "삭제", Toast.LENGTH_SHORT).show();
break
case 3:
Toast.makeText(MainActivity.this, "메일보내기", Toast.LENGTH_SHORT).show();
break
case 4:
Toast.makeText(MainActivity.this, "카메라", Toast.LENGTH_SHORT).show();
break
case 5:
Toast.makeText(MainActivity.this, "하나", Toast.LENGTH_SHORT).show();
break
case 6:
Toast.makeText(MainActivity.this, "둘", Toast.LENGTH_SHORT).show();
break
case 7:
Toast.makeText(MainActivity.this, "셋", Toast.LENGTH_SHORT).show();
break
default:
break
}
return super.onOptionsItemSelected(item);
}
중간의 SubMenu는 메뉴를 한번 누르고 2차로 추가되는 메뉴이다
설정을 누르면
위와 같이 SubMenu인 하나, 둘, 셋이 나온다.
코드에서 onOptionsItemSelected 아래의 각 메뉴를 선택했을 경우에 맞게 Case에 코드를 작성하면 된다.