본문 바로가기

Android/메뉴(Menu)

안드로이드/Android 컨텍스트메뉴(ContextMenu) 사용 예제 ~!


 < 개발 환경 >  
   작성일 : 2013.01.17
   OS 설치 버전 : Windows7 32bit  
   SDK 설치 버전 : 안드로이드 SDK 4.2 (젤리빈) / API LEVEL : 17  
   ADT 설치 버전 : 21   
   Java 설치 버전 : JDK 1.6.0_20 / JRE6 
   이클립스 설치 버전 : Indigo
   테스트단말 : 삼성 갤럭시 S2 4.0.4 (아이스크램 샌드위치)   

 < 프로젝트 적용 > 
   API LEVEL : 14  
   minSdkVersion : 14
   targetSdkVersion : 14  
   Java Compiler Level : 1.6  
   Text file encoding : UTF-8





안드로이드/Android 컨텍스트메뉴(ContextMenu) 사용 예제 ~!





안드로이드 컨텍스트메뉴(ContextMenu) 사용법 입니다.  기본 메서드의 흐름은 안드로이드 옵션메뉴(OptionMenu)와 비슷한 구조를 가지고 있습니다. 사용법은 특정한 View에 컨텍스트메뉴를 등록해 준 후, View를 일정시간 롱클릭 하면 작동 하게 됩니다.


자세한 컨텍스트메뉴의 메서드 설명은 조만간 다시 포스팅 하도록 하겠습니다.


자 그럼 사용법에 대해 알아보겠습니다.


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);
	}
	
}




파일첨부 : 

TestContextMenu.zip



스크린샷 : 




감사합니다.