< 개발 환경 > < 프로젝트 적용 > |
안드로이드/Android 옵션메뉴(OptionMenu) 사용 예제 ~!
옵션메뉴(OptionMenu) 사용 예제 입니다.
package arabiannight.tistory.com.optionmenuadd; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.MenuItem; 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) { getMenuInflater().inflate(R.menu.activity_main, menu); // 아이콘 설정 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").setTitle("안녕하세요.!"); // 알파벳 단축키 지정 menu.add(0, FIVE, Menu.NONE, "FIVE").setAlphabeticShortcut('F'); // 더보기 메뉴가 나올경우 setIcon메서드 적용인 안됨. menu.add(0, SIX, Menu.NONE, "SIX").setNumericShortcut('5'); // Menu에서 startActivity(intent) 실행해 준다. menu.add(0, SEVEN, Menu.NONE, "SEVEN").setIntent(playVideo()); // 숫자 단축키 지정 menu.add(0, EIGHT, Menu.NONE, "EIGHT").setNumericShortcut('9'); menu.add(0, NINE, Menu.NONE, "NINE"); menu.add(0, TEN, Menu.NONE, "TEN"); return true; } public Intent playVideo() { Intent i = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("http://www.youtube.com/embed/EyR9lx92x9A?rel=0"); i.setDataAndType(uri, "video/*"); return i; } @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 SIX: Toast.makeText(MainActivity.this, "SIX", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onOptionsItemSelected(item); } }
Menu.add() 메서드의 매개변수에 대해 알아 보자면,
Menu.add(groupId, itemId, order, title)
groupId : Group ID 이며 Menu에서 제공하는 그룹 속성을 이용하기 위해 설정 한다.
itemId : Menu에서 관리하는 고유한 item ID.
order : item의 순서 (0 ~ 10) 10이 제일 먼저 표시 된다. (10이상 추가 가능)
title : item의 Title.
menu item 변경시 추가해주면 됨
onPrepareOptionsMenu(Menu menu) 처럼 Menu 매개변수로 받는 곳에서 findItem 가능함.
// menu.findItem(R.id.menu_settings).setIcon(android.R.drawable.ic_delete);
또한 코드에서 Menu.add()로 추가하는 방법 말고도, 프로젝트 폴더에 res -> menu 폴더에 가셔서 아래와 같이 아이템을 추가해 주셔도 옵션메뉴를 추가하실 수 있습니다.
파일첨부 :
스크린샷 :
위의 예제 코드를 보시면 옵션메뉴가 6개 이상으로 넘어갈 경우 [더보기] 옵션메뉴가 자동으로 추가 됩니다. [더보기] 옵션메뉴를 선택할 경우 나머지 옵션메뉴들을 확인 할 수 있는데, 만약 옵션메뉴(item)의 배경화면이나, 크기, 색상, 옵션메뉴의 표시 개수를 6개 이상 보여주고 싶다면 옵션메뉴 자체를 Custom해서 사용 하셔야 합니다.
유용하게 활용 하시기 바랍니다.^^
감사합니다.
'Android > 메뉴(Menu)' 카테고리의 다른 글
안드로이드/Android 컨텍스트메뉴(ContextMenu) 포지션(Position) 얻어 오기 ~! (0) | 2013.02.21 |
---|---|
안드로이드/Android 컨텍스트메뉴(ContextMenu) 사용 예제 ~! (0) | 2013.01.17 |
안드로이드/Android 옵션메뉴(OptionMenu) SubMenu 활용 하기~! (7) | 2013.01.16 |
안드로이드/Android 옵션메뉴(OptionMenu) 사용방법 ~! (2) | 2013.01.15 |