티스토리 뷰

지난번에는 안드로이드 옵션 메뉴에 대해서 살펴봤는데요.
2011/09/29 - [프로그래밍/안드로이드] - 안드로이드 옵션 메뉴 만들기

이번에는 컨텍스트 메뉴를 만들어 보도록 하겠습니다.
컨텍스트 메뉴는 해당 뷰를 길게 누르고 있으면 나타나는 메뉴입니다.

기본적인 개념은 옵션메뉴와 크게 다르지는 않지만, 특정한 뷰를 기반으로 하고 있다는 점이 큰 차이라고 할 수 있습니다.
컨텍스트 메뉴와 관련된 메소드는 다음과 같습니다.

컨텍스트 메뉴 생성
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)

컨텍스트 메뉴 선택
public boolean onContextItemSelected(MenuItem item)

그리고 중요한 것이 하나 있습니다.
바로 컨텍스트 메뉴를 각각의 액티비티 혹은 뷰에 등록해야 하는데요..
다음 두 가지 구문 중 하나만 사용해서 등록하면 됩니다.

public void registerForContextMenu(View view)
public void setOnCreateContextMenuListener(View.OnCreateContextMenuListener l)

registerForContextMenu() 메소드가 내부적으로 View.OnCreateContextMenuListener()을 호출하기 때문에 둘 중에 하나만 사용해도 된다고 하네요..

소스를 테스트 하기 위해서는 기본으로 만들어진 레이아웃인 main.xml에서 <TextView>에 아이디를 부여해 주셔야 합니다.
아래 예제를 위해서는 다음과 같이 부여하면 됩니다.

android:id="@+id/textView"



다른 부분을 길게 누르면 아무 반응이 없지만 텍스트를 길게 누르면 컨텍스트 메뉴가 나타나는 것을 볼 수 있습니다.
댓글
댓글쓰기 폼