본문 바로가기
코딩일기/android studio

안드로이드 독학 14일차 : 옵션 메뉴 생성하기(xml 편)

by 욱파이어니어 2021. 3. 29.
728x90
반응형

우리가 어플을 보면 우측 상단에 옵션 메뉴 화면을 볼 수가 있다.

 

ex) 

위에 동그라미 친 부분을 옵션 메뉴라고한다.

이제부터 우리가 배워 볼 것은 저 메뉴 부분이다.

 

일단 xml로 옵션 메뉴를 생성하는 법을 보자.

xml로 메뉴를 생성하려면 일단은 res 폴더에서 new -> Directory로 들어가서 menu 폴더를 만들면 된다.

 

이렇게 하면 Directory를 쓰라고 하는 부분이 있는데 거기다가 menu를 치면 된다.

그렇게 생성된 menu 폴더에서 오른쪽 클릭해서 new -> Menu resource file로 들어가서 xml 파일 이름은  마음대로 지으면 된다.

(근데 웬만하면 만들려는 주제에 맞게 선정해야 한다.)

이렇게 클릭해서 들어가고 가고 나서 

파일 이름 정하고 ok버튼 누르면 된다.

그러면 mymenu라는 xml 파일이 생성되는데 해당 메뉴 안에 item을 만들어 넣으면 된다.

item을 담는 <group><item></item><group>을 넣어도 된다.

그럼 아래 예제를 보자.

이렇게 만들면 옵션 메뉴 안에 있는 item들이 들어간 걸 볼 수가 있다.

여기서 중요한 점은 item은 안에 텍스트를 넣고 싶을 땐 text가 아닌 android:title에다가 넣어줘야 한다.

 

그럼 이제 xml을 만들었다. 하지만 이대로 실행시키면 옵션 메뉴가 적용이 안된 것을 볼 수가 있다.

그 이유는 우리가 MainActivity.java 파일에 추가를 해주지 않았기 때문이다.

layout도 보면 우리가 

setContentView(R.layout.activity_main);

를 해주기 때문에 화면에 보이듯이 이것도 마찬가지로 자바 소스에 추가를 시켜줘야 한다.

그 자바 소스 부분이 아래 소스이다.

    @Override
    //메뉴를 해당 화면에 붙일려면 이 메소드를 꼭 써서 넣어놔야 함
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.mymenu,menu);
        return true;
    }

onCreateOptionMenu()를 오버라이딩해줘야 하고 MenuInflator 객체를 생성해줘서 

해당 객체로 inflate 해줘야만 메뉴가 적용이 된다.

 

inflate는 팽창시킨다는 의미 인대 xml로 적은 옵션 메뉴를 팽창시켜서 실제 옵션 메뉴를 만들어준다고 생각하면 된다.

이렇게 하고 앱을 실행시켜보면 옵션 메뉴가 적용된 화면을 볼 수가 있다.

이렇게 우리는 간단하게 xml로 옵션 메뉴를 만들어 봤다 다음 블로그에는 옵션 메뉴를 선택했을 때의 이벤트 처리를 한번 해보자.

반응형