[예제] Context Menu (컨텍스트 메뉴)


context menu 란, 흔히 컴퓨터를 사용할 때 마우스 오른쪽 버튼을 클릭하면 나타나는 메뉴를 말한다.
안드로이드에서는 Activity를 길게 터치하면 나타나는 메뉴가 바로 context menu 이다.

컨텍스트 메뉴를 만들기 위해서는 3단계를 거친다.
1. 컨텍스트 메뉴 만들기
2. 컨텍스트 메뉴 선택 처리 로직 작성하기
3. 컨텍스트 메뉴를 View 에 등록하기.

@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
this.registerForContextMenu(this.findViewById(R.id.textView1));
}
private final int CONTEXT_1 = 1;
private final int CONTEXT_2 = 2;
@Override
public void onCreateContextMenu(final ContextMenu menu, final View v,
final ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, this.CONTEXT_1, 0, "Edit");
menu.add(0, this.CONTEXT_2, 0, "Delete");
}
@Override
public boolean onContextItemSelected(final MenuItem item) {

switch (item.getItemId()) {
case CONTEXT_1:
case CONTEXT_2:
default:
return super.onContextItemSelected(item);
}
}

1. 컨텍스트 메뉴 만들기
컨텍스트 메뉴는 아래 매소드를 재정의 한다.


public void onCreateContextMenu(final ContextMenu menu, final View v,
final ContextMenuInfo menuInfo)



2. 컨텍스트 메뉴 선택 처리 로직 작성하기
컨텍스트 메뉴가 사용자에 의해 선택시 처리로직을 작성하기 위해서는 아래 메소드를 재정의 한다. 

@Override
public boolean onContextItemSelected(final MenuItem item) 



3. 컨텍스트 메뉴를 View 에 등록하기.
 작성된 컨텍스트 메뉴를 사용하려는 View 엘리먼트에 등록하기 위해서는 아래 메소드를 이용한다.

this.registerForContextMenu(this.findViewById(R.id.textView1));

 
R.id.textView1. 은 미리 화면에 레이아웃에 추가시켜둔 View 엘리먼트이다.

 




 

'안드로이드' 카테고리의 다른 글

Android platform Versions  (0) 2011.11.10
[예제] Option Menu (옵션메뉴)  (0) 2011.09.07
안드로이드 시작하기~  (0) 2010.03.19