본문 바로가기

안드로이드 스튜디오

[ 안드로이드 ] ActionBar menu 사용법

activity_add.xml / activity_save.xml 각각 다른 메뉴 아이콘을 넣을 경우

• activity_main.xml

1) 아이콘 생성 : res > drawable > New > Vector Asset

 

2) 메뉴 파일 생성 : res > menu > menu_add.xml

* showAsAction="always" : 아이템을 항상 타이틀 바에 표시함

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/itemAdd"
        android:icon="@drawable/ic_menu_add"
        android:title="Item"
        app:showAsAction="always" />
</menu>

 

3) 메뉴를 화면에 나타나게 해준다. (MainActivity.java)

 

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_add, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    int id = item.getItemId();
    if(id == R.id.itemAdd) {
    	// 메뉴 버튼(아이콘)을 누르면 화면 전환
        Intent intent = new Intent(MainActivity.this, AddActivity.class);
        startActivity(intent);
    }
    return super.onOptionsItemSelected(item);
}

• activity_add.xml

1) 아이콘 생성 : res > drawable > New > Vector Asset

 

2) 메뉴 파일 생성 : res > menu > menu_save.xml

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/itemSave"
        android:title="Item"
        android:icon="@drawable/ic_menu_save"
        app:showAsAction="always"/>
</menu>

 

3) 메뉴를 화면에 나타나게 해준다. (AddActivity.java)

 

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_save, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    int id = item.getItemId();
    if(id == R.id.itemSave) {
        finish();
    }
    return super.onOptionsItemSelected(item);
}