Language/Android Studio

[Android] 안드로이드 옵션 메뉴 구성/속성 (XML 사용) | Yoon's Dev

Yooniron 2021. 6. 15. 08:00

안드로이드 옵션 메뉴 구성/속성 (XML 사용)

 

 


TO Do.

 

- 메뉴를 생성하는 방법 중에서 XML을 이용하는 방법

   . Option Menu 생성 과정

   . 일반적인 형태의 메뉴 생성 방법

- 메뉴의 재사용성

- 옵션 메뉴를 XML을 이용하여 생성

- 콘텍스트 메뉴도 같은 방법으로 생성

 

 

 


1. 레이아웃 구성

 

* 이 글은 옵션 메뉴만을 구성하는 과정이기에 별도의 레이아웃 구성이 필요가 없습니다. *

 

대신에 옵션 메뉴에 대한 구성을 위한 XML 작업이 필요로 합니다.!

-> 옵션 메뉴의 선택 여부는 토스트 기능으로 확인해보도록 합시다.


메뉴 구성

res/menu 하단에 구성 (Resource type을 Menu로 설정)

 

 


 

2. main_option.xml

 

다음과 같이 메뉴를 추가해 줍시다.

 

main_option.xml

 


 

3. MainActivity.java

 

Ctrl + O를 눌러서 onCreateOptionsMenu@override 해줍니다.

 

MainActivity.java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.exam.myapplication;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.os.Bundle;
import android.view.Menu;
 
public class MainActivity extends AppCompatActivity {
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_option, menu);
        return super.onCreateOptionsMenu(menu);
    }
}
cs

 

 

 

 

- XML 메뉴를 생성할 때 MenuInflater 객체의 inflate() 메서드를 사용

- MenuInflater 객체는 Activity.getMenuInflater() 메서드로 얻어올 수 있음

- 메뉴의 리소스 ID만 전달하면 XML 엘리먼트를 읽어 항목을 추가할 수 있음

 

추가로 선택된 메뉴를 구분처리하기 위해 onOptionsItemSelected 메서드를 @override 해줍니다.

 

onOptionsItemSelected() 추가

 

 

4. 실행 결과