이전에 만든 Tool Bar 에 메뉴를 넣어보겠습니다.

이전게시글(http://kjcoder.tistory.com/169)

 

1. 우선 메뉴에 사용될 아이콘들을 가져옵니다.

https://material.io/icons/

여기로 가면 쓸만한 아이콘들이 많이 있습니다.

drawable.zip

여기서 다루게될 아이콘들의 모음입니다.

원래 검은색인데 회색으로 변경하였습니다.

일단 준비는 끝났고 위 아이콘들을 drawable 폴더에 추가합니다.

 

2. 메뉴를 만듭니다.

Resource 폴더 하위에 menu 폴더를 하나만들고 xml 파일을 추가합니다. top_menu.xml 로 만듭니다. (이름은 맘대로)

내용은 아래와 같습니다.

<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item
       android:id="@+id/menu_Add"
       android:icon="@drawable/ic_add_black_24dp"
       android:showAsAction="ifRoom"
       android:title="추가" />
  <item
       android:id="@+id/menu_Advanced"
       android:showAsAction="never"
       android:title="Visit Site" />
</menu>

첫번째 메뉴는 추가 메뉴입니다. + 모양의 아이콘으로 보여지게됩니다.

두번째 메뉴는 아이콘이 없는 환경 설정 메뉴로 popup 메뉴를 뜨게 할수 있습니다.

* showAsAction="ifRoom" => TollBar 공간이 있으면 메뉴 항목이 표시됩니다.

* showAsAction="never" => 환경설정 메뉴항목이 설정되는 곳으로 세개의 수직점으로 나타납니다.

미리 보기

 

3. 메뉴를 보이도록 합니다.

메뉴가 추가될 화면의 Activity 에 아래 코딩을 추가합니다.

public override bool OnCreateOptionsMenu(IMenu menu)
{
    MenuInflater.Inflate(Resource.Menu.top_menus, menu);
    return base.OnCreateOptionsMenu(menu);
}

OnCreateOptionsMenu 메서드에서 메뉴 리소스를 지정할수 있게 합니다.

 

4. 메뉴 이벤트를 연결합니다.

public override bool OnOptionsItemSelected(IMenuItem item)
{
    Toast.MakeText(this, "Action selected: " + item.TitleFormatted, ToastLength.Short).Show();
    return base.OnOptionsItemSelected(item);
}

사용자가 메뉴항목을 클릭하면 OnOptionsItemSelected 메서드를 호출하고 선택한 메뉴 항목을 전달합니다.

여기서 메뉴 Action 처리를 할수 있습니다.

최종화면은 아래와 같이 나타납니다.

 

 

 

 

+ Recent posts