안드로이드 팝업메뉴 예제

사용자가 옵션 메뉴에서 항목을 선택하면(앱 표시줄의 작업 항목 포함) 시스템은 활동의 onOptionsItemSelected() 메서드를 호출합니다. 이 메서드는 선택한 MenuItem을 전달합니다. 메뉴 항목의 고유 ID를 반환하는 getItemId()를 호출하여 항목을 식별할 수 있습니다(메뉴 리소스의 android:id 특성 또는 add() 메서드에 지정된 정수)로 정의됨). 이 ID를 알려진 메뉴 항목과 일치하여 적절한 작업을 수행할 수 있습니다. 예를 들어, 메뉴 리소스를 사용하는 것은 몇 가지 이유로 좋은 방법입니다: Android에서 팝업 메뉴는 API 수준 11(Android 3.0) 및 상위 버전에서 사용할 수 있습니다. Android 3.0+를 사용하는 경우 팝업 메뉴에서 메뉴의 바로 가기 및 항목 아이콘을 지원하지 않습니다. Android 3.0 이전에는 권장 메뉴 전략이 몇 가지 있었는데 이제는 권장되지 않습니다. 최신 앱에서 사용되지 않는 전략은 그림 3입니다. 부동 컨텍스트 메뉴(왼쪽)와 컨텍스트 작업 표시줄(오른쪽)의 스크린샷입니다. 또한 ListView 항목에 대한 상황에 맞는 메뉴를 활성화할 수도 있습니다.

이는 목록 항목에 대한 setOnItemLongClickListener 속성을 설정한 다음 작업 모드를 표시하는 것만큼 간단합니다. 이전 섹션을 정의 한 동일한 작업 모드를 감안할 때, 우리는 와 항목에 모드를 적용 할 수 있습니다 : 당신은 위의 코드를 관찰하는 경우 우리는 버튼 클릭에 팝업 메뉴를 표시하려고, Popup.inflate()를 사용하여 로드 정의 된 메뉴 자원을 표시하고 팝업 메뉴 항목을 클릭 이벤트를 구현합니다. 생성자 앵커 보기와 함께 새 팝업 메뉴를 만듭니다. 요소는 항목의 모양과 동작을 정의하는 데 사용할 수 있는 몇 가지 특성을 지원합니다. 위의 메뉴의 항목에는 다음과 같은 속성이 포함됩니다: API 수준 14 이상에서는 메뉴를 팽창시키는 두 줄을 PopupMenu.inflate()로 결합할 수 있습니다. 보기에 대 한 팝업 메뉴를 표시 하려면 팝업 생성자 인스턴스화 하 고 MenuInflater를 사용 하 여 MenuInflater 를 사용 하 여 MenuInflater를 사용 하 여 MenuInflater.inflate() 아래와 같이. 앱은 종종 상황에 맞는 작업을 실행하기 위해 일관된 환경을 사용자에게 제공해야 합니다. 활동에 대한 가장 일반적인 작업은 기본 작업 표시줄에 있지만 항목 또는 요소에 더 구체적인 작업은 메뉴 및 팝업을 사용하여 컨텍스트별로 표시할 수 있습니다. 메뉴 외에도 앱은 정보 콘텐츠가 포함된 팝업 오버레이를 표시해야 하는 경우가 많습니다. 이 가이드에서는 Android 앱 내에서 메뉴 및 팝업을 관리하는 방법을 다룹니다. 이 메뉴가 해제될 때 알림을 받을 수신기를 설정합니다. 안드로이드 팝업 메뉴는 특정 콘텐츠와 관련된 작업에 대한 오버플로 스타일 메뉴를 제공합니다.

다음은 그룹을 포함하는 예제 메뉴 리소스입니다. 경우에 따라 한 항목이 컨텍스트 동작의 영향을 받을 수 있는 일괄 처리 모드도 지원할 수 있습니다. 이 경우 공식 메뉴 문서에서 설명한 대로 MultiChoiceModeListener를 액션 모드로 사용해야 합니다. 다음으로, 우리의 상황에 맞는 작업 메뉴의 동작을 관리 할 ActionMode.Callback을 정의 할 수 있습니다 : getItemId() 메서드는 선택한 메뉴 항목에 대한 ID를 쿼리합니다. XML에서 메뉴 정의에 대한 섹션입니다. 활동이 ListView 또는 GridView를 사용하고 각 항목이 동일한 컨텍스트 메뉴를 제공하려는 경우 ListView 또는 GridView를 통과하여 상황에 맞는 메뉴에 대한 모든 항목을 등록하여 등록합니다.ForContextMenu().