앱 바에서 사용자 작업 버튼을 추가할 수 있습니다. 이 기능을 사용하면 현재 컨텍스트에 가장 중요한 작업이 앱 상단에 표시됩니다. 예를 들어 사진 탐색 앱에서 공유 및 만들기라고 표시할 수 있습니다. 앨범 버튼이 상단에 표시됩니다. 날짜 사용자가 개별 사진을 볼 때는 앱에서 자르기와 필터 버튼을 사용하세요.
앱 바의 공간은 한정되어 있습니다. 앱에서 선언할 수 있는 것보다 더 많은 작업을 선언하는 경우 앱 바의 앱 바는 초과 작업을 더보기 메뉴로 보냅니다. 앱은 작업이 항상 더보기 메뉴에 표시되도록 지정할 수도 있습니다. 앱 바에 표시하는 대신
![작업 모음 아이콘이 있는 Now in Android 앱을 보여주는 이미지](https://developer.android.google.cn/static/images/ui/notifications/actions_actionbar.png?authuser=0000&hl=ko)
작업 버튼 추가
모든 작업 버튼과 작업 오버플로에서 사용할 수 있는 기타 항목은
XML에 정의됨
메뉴 리소스. 추가
작업 모음에 추가하고, 프로젝트의
res/menu/
디렉터리에 있습니다.
<item>
드림
요소를 추가할 수 있습니다.
다음 샘플 메뉴 XML 파일입니다.
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", must appear as action button if possible. --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, must always be in the overflow. --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu>
app:showAsAction
속성은 작업을 실행할지 여부를 지정합니다.
앱 바에 버튼으로 표시됩니다. 만약
app:showAsAction="ifRoom"
: 예시 코드의
favorite 작업 - 작업이 목록에 있는 경우
앱 바를 탭합니다. 공간이 충분하지 않은 경우 초과 작업은
더보기 메뉴 다음과 같이 app:showAsAction="never"
를 설정하면
예시 코드의 settings 작업을 처리할 수 있습니다. 이 작업은 항상
더보기 메뉴가 표시되고 앱 바에 표시되지 않습니다.
작업이 표시되면 시스템은 작업의 아이콘을 작업 버튼으로 사용합니다. 을 클릭합니다. Cloud Shell에서 여러 유용한 아이콘을 머티리얼 아이콘.
작업에 응답
사용자가 앱 바 항목 중 하나를 선택하면 시스템에서
활동의
onOptionsItemSelected()
콜백 메서드를 호출하고
객체 MenuItem
개
탭된 항목을 표시합니다. 구현 시
onOptionsItemSelected()
인 경우
MenuItem.getItemId()
메서드를 사용하여 어떤 항목을 탭했는지 확인합니다. 반환된 ID는 사용자가 제공한 값과
상응하는 <item>
요소의
android:id
속성
예를 들어 다음 코드 스니펫은 사용자가 선택하는 작업을 확인합니다. 메서드가 사용자의 작업을 인식하지 못하면 슈퍼클래스를 호출합니다. 메서드를 사용하여 축소하도록 요청합니다.
Kotlin
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> { // User chooses the "Settings" item. Show the app settings UI. true } R.id.action_favorite -> { // User chooses the "Favorite" action. Mark the current item as a // favorite. true } else -> { // The user's action isn't recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } }
Java
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: // User chooses the "Settings" item. Show the app settings UI. return true; case R.id.action_favorite: // User chooses the "Favorite" action. Mark the current item as a // favorite. return true; default: // The user's action isn't recognized. // Invoke the superclass to handle it. return super.onOptionsItemSelected(item); } }