작업 추가 및 처리

앱 바에서 사용자 작업 버튼을 추가할 수 있습니다. 이 기능을 사용하면 현재 컨텍스트에 가장 중요한 작업이 앱 상단에 표시됩니다. 예를 들어 사진 탐색 앱에서 공유만들기라고 표시할 수 있습니다. 앨범 버튼이 상단에 표시됩니다. 날짜 사용자가 개별 사진을 볼 때는 앱에서 자르기필터 버튼을 사용하세요.

앱 바의 공간은 한정되어 있습니다. 앱에서 선언할 수 있는 것보다 더 많은 작업을 선언하는 경우 앱 바의 앱 바는 초과 작업을 더보기 메뉴로 보냅니다. 앱은 작업이 항상 더보기 메뉴에 표시되도록 지정할 수도 있습니다. 앱 바에 표시하는 대신

작업 모음 아이콘이 있는 Now in Android 앱을 보여주는 이미지
그림 1. 'Now in Android'의 작업 아이콘 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

작업 버튼 추가

모든 작업 버튼과 작업 오버플로에서 사용할 수 있는 기타 항목은 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);

    }
}