검색어 : actionbar submenu style
안드로이드/Android 옵션메뉴(OptionMenu) SubMenu 활용 하기~!
http://arabiannight.tistory.com/entry/311
- > 쉬운방법
안드로이드/Android 옵션메뉴(OptionMenu) SubMenu 활용 하기~!
안드로이드 옵션메뉴(OptionMenu)에서 SubMenu를 활용 하는 방법 입니다. SubMenu란 옵션메뉴에서 하나의 Menu item을 그 하위의 sub item들과 묶어서 하나의 Group 형태로 활용하는 방법 입니다. SubMenu를 설정하고 SubMenu가 선택이 되었을 때는 안드로이드 ContextMenu와 동일한 형태의 팝업창을 보여 줍니다.
Menu
Menu
Menu
SubMenu
-> Menu
-> Menu
-> Menu
Menu
의 형태로 보시면 됩니다. 자 그럼 구현 방법에 대해 알아 보겠습니다. 일단 예제에는 Java 코드로 동적으로 생성하는 방법이 나와 있는데 XML 형태로 구현을 원한다면 아래 예제의 Java 코드의 Menu.add() 부분을 주석처리 하고,
// getMenuInflater().inflate(R.menu.activity_main, menu);
주석을 풀고 사용 하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | package arabiannight.tistory.com.optionmenusubmenu; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.widget.Toast; public class MainActivity extends Activity { final int ONE = 0 ; final int TWO = 1 ; final int THREE = 2 ; final int FOUR = 3 ; final int FIVE = 4 ; final int SIX = 5 ; final int SEVEN = 6 ; final int EIGHT = 7 ; final int NINE = 8 ; final int TEN = 9 ; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // XML로 옵션메뉴 추가 하기 // getMenuInflater().inflate(R.menu.activity_main, menu); // Java Code로 옵션메뉴 추가 하기 menu.add( 0 , ONE, Menu.NONE, "ONE" ).setIcon(android.R.drawable.ic_menu_rotate); menu.add( 0 , TWO, Menu.NONE, "TWO" ).setIcon(android.R.drawable.ic_menu_add); menu.add( 0 , THREE, Menu.NONE, "THREE" ).setIcon(android.R.drawable.ic_menu_agenda); menu.add( 0 , FOUR, Menu.NONE, "FOUR" ); menu.add( 0 , FIVE, Menu.NONE, "FIVE" ); // Menu에 SubMenu 추가 SubMenu subMenu = menu.addSubMenu( "글씨체 설정" ); subMenu.add( 1 , SIX, Menu.NONE, "굴림체" ); subMenu.add( 1 , SEVEN, Menu.NONE, "이탤릭체" ); subMenu.add( 1 , EIGHT, Menu.NONE, "맑은고딕" ); return true ; } @Override public boolean onPrepareOptionsMenu(Menu menu) { return super .onPrepareOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ONE: Toast.makeText(MainActivity. this , "ONE" , Toast.LENGTH_SHORT).show(); break ; case TWO: Toast.makeText(MainActivity. this , "TWO" , Toast.LENGTH_SHORT).show(); break ; case EIGHT: Toast.makeText(MainActivity. this , "EIGHT" , Toast.LENGTH_SHORT).show(); break ; default : break ; } return super .onOptionsItemSelected(item); } } |
XML의 메뉴 구조 모습 입니다.
Android ActionProvider를 이용한 ActionBar Item Action에 대한 커스텀뷰 생성
반응형
'차근차근 > Android' 카테고리의 다른 글
네비게이션 드로어 Navigation Drawer (0) | 2015.02.04 |
---|---|
actionbar 란 (0) | 2015.02.03 |
actionbar , 하단tab (0) | 2015.02.03 |
[android] 2.2에서 fragment 사용하기 (0) | 2015.02.03 |
허니컴 이하에서 ActionBar 사용하기 (ActionbarSherlock) (0) | 2015.02.03 |