[java] 안드로이드 메뉴 및 액션바

안드로이드 앱 개발에서 메뉴와 액션바는 중요한 요소입니다. 메뉴는 앱의 기능을 나타내고, 액션바는 화면 상단에 위치하여 앱에 필요한 동작을 수행할 수 있는 버튼을 제공합니다. 이번 포스트에서는 안드로이드에서 메뉴와 액션바를 구현하는 방법에 대해 알아보겠습니다.

1. 메뉴 생성하기

안드로이드에서 메뉴는 XML 파일로 생성됩니다. 메뉴 XML 파일은 res/menu 디렉토리에 저장되며, 앱의 리소스로 쉽게 참조할 수 있습니다. 메뉴 XML 파일에는 메뉴 아이템, 그룹, 서브메뉴 등을 정의할 수 있습니다. 다음은 간단한 메뉴 XML 파일의 예시입니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_item1"
        android:title="메뉴 1"/>
    <item android:id="@+id/menu_item2"
        android:title="메뉴 2"/>
    <item android:id="@+id/menu_item3"
        android:title="메뉴 3"/>
</menu>

위 예시에서는 세 개의 메뉴 아이템을 정의하였습니다. 각 메뉴 아이템에는 고유한 ID와 텍스트 라벨을 부여할 수 있습니다.

2. 액션바에 메뉴 연결하기

메뉴를 액션바와 연결하려면 액티비티의 onCreateOptionsMenu() 메서드를 오버라이딩해야 합니다. 이 메서드에서는 MenuInflater를 사용하여 메뉴 XML 파일을 인플레이트하고, 액션바에 메뉴를 추가합니다.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    return true;
}

위 코드에서는 inflater.inflate(R.menu.main_menu, menu)를 사용하여 main_menu라는 메뉴 XML 파일을 액션바에 연결하고 있습니다.

3. 메뉴 클릭 이벤트 처리하기

메뉴 아이템을 클릭했을 때 수행할 동작을 정의하기 위해 onOptionsItemSelected() 메서드를 오버라이딩합니다. 메뉴 아이템의 ID를 확인하여 각각에 맞는 동작을 수행합니다.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_item1:
            // 메뉴 1을 클릭했을 때 수행할 동작
            return true;
        case R.id.menu_item2:
            // 메뉴 2를 클릭했을 때 수행할 동작
            return true;
        case R.id.menu_item3:
            // 메뉴 3을 클릭했을 때 수행할 동작
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

위 예시에서는 각각의 메뉴 아이템을 클릭했을 때 수행할 동작을 정의하였습니다. 각 동작에 맞게 코드를 작성하면 됩니다.

4. 액션바에 아이콘 추가하기

액션바에 아이콘을 추가하려면 메뉴 XML 파일에 icon 속성을 추가하여 아이콘을 지정합니다. 아이콘 이미지 파일은 res/drawable 디렉토리에 저장되어야 합니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_item1"
        android:title="메뉴 1"
        android:icon="@drawable/menu_icon1"/>
    <item android:id="@+id/menu_item2"
        android:title="메뉴 2"
        android:icon="@drawable/menu_icon2"/>
    <item android:id="@+id/menu_item3"
        android:title="메뉴 3"
        android:icon="@drawable/menu_icon3"/>
</menu>

위 예시에서는 menu_icon1, menu_icon2, menu_icon3라는 세 개의 아이콘 파일을 액션바에 추가하고 있습니다.

마무리

이번 포스트에서는 안드로이드에서 메뉴와 액션바를 생성하고 사용하는 방법에 대해 알아보았습니다. 메뉴와 액션바는 안드로이드 앱의 사용자 인터페이스를 향상시키는 데 매우 유용한 기능입니다. 더 자세한 내용을 알고 싶다면 안드로이드 공식 문서를 참고해주세요.