안드로이드/Android 컨텍스트메뉴(ContextMenu) 사용 예제 ~!
안드로이드 컨텍스트메뉴(ContextMenu) 사용법 입니다. 기본 메서드의 흐름은 안드로이드 옵션메뉴(OptionMenu)와 비슷한 구조를 가지고 있습니다. 사용법은 특정한 View에 컨텍스트메뉴를 등록해 준 후, View를 일정시간 롱클릭 하면 작동 하게 됩니다.
자세한 컨텍스트메뉴의 메서드 설명은 조만간 다시 포스팅 하도록 하겠습니다.
자 그럼 사용법에 대해 알아보겠습니다.
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 81 82 83 84 85 86 | package arabiannight.tistory.com.contextmenu; import android.app.Activity; import android.os.Bundle; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.widget.Button; 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); Button btn = (Button) findViewById(R.id.btn_click); Button btn2 = (Button) findViewById(R.id.btn_click2); registerForContextMenu(btn); registerForContextMenu(btn2); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if (v.getId() == R.id.btn_click) { getMenuInflater().inflate(R.menu.activity_main, menu); } else { menu.setHeaderIcon(android.R.drawable.btn_star); menu.setHeaderTitle( "공지사항" ); menu.add(Menu.NONE, ONE, Menu.NONE, "사과" ); menu.add(Menu.NONE, TWO, Menu.NONE, "배" ); menu.add(Menu.NONE, THREE, Menu.NONE, "감" ); menu.add(Menu.NONE, FOUR, Menu.NONE, "바나나" ); menu.add(Menu.NONE, FIVE, Menu.NONE, "키위" ); menu.add(Menu.NONE, SIX, Menu.NONE, "귤" ); menu.add(Menu.NONE, SEVEN, Menu.NONE, "오렌지" ); // Menu에 SubMenu 추가 SubMenu subMenu = menu.addSubMenu( "하우스과일" ); subMenu.add( 1 , SIX, Menu.NONE, "방울토마토" ); subMenu.add( 1 , SEVEN, Menu.NONE, "하우스딸기" ); subMenu.add( 1 , EIGHT, Menu.NONE, "애호박" ); } super .onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case ONE: break ; default : break ; } return super .onContextItemSelected(item); } } |
파일첨부 :
스크린샷 :
감사합니다.