본문 바로가기
Android Studio

[Android Studio] ActionBar 아이콘 추가하기(Menu 사용하기)

by coding_su 2023. 2. 6.

📝액션바 아이콘 추가하기

res파일에 마우스 우클릭 New > Android Resource File

 

액션바 오른쪽 끝에 나오는 아이콘을 메뉴라 한다

파일명은 main(메인 액티비티에서 사용할거라), Resource type은 Menu로 설정해서 생성

 

플러스 액션은 리소스파일에 벡터이미지를 생성해 Menu item으로 넣어주었다

showAsAction으로 메뉴 숨김 / 표시 설정해준다

never는 버튼을 표시X(... 안으로 들어간다), always 항상 표시

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

    <item
        android:id="@+id/menuAdd"
        android:icon="@drawable/baseline_add_24"
        android:title="Add"
        app:showAsAction="always" />
    <item
        android:id="@+id/menuAbout"
        android:title="About"
        app:showAsAction="never" />
</menu>

 

위처럼 필요한 아이콘을 만들고 이 아이콘을 사용할 액티비티로 돌아가 아래 코드처럼 입력해 사용한다

※ onCreate 함수를 접고 밑에 입력해주면 편함

// 액션바의 메뉴는 전용 함수 오버라이딩해서 사용
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // 액션바에 메뉴가 나오도록 설정
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    // 액션바의 메뉴를 탭했을때 실행하는 함수 오버라이딩해서 사용
    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        int itemId = item.getItemId();

        if (itemId == R.id.menuAdd) {
            // Add 실행하는 코드
            Intent intent = new Intent(MainActivity.this, AddActivity.class);
            launcher.launch(intent);

        } else if (itemId == R.id.menuAbout) {
            // About 실행하는 코드
        }
        return super.onOptionsItemSelected(item);
    }

 

+ 액션바의 타이틀을 변경하고 싶을때는 onCreate 함수의 안쪽 위에서 아래 코드처럼 입력해준다

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 액션바 타이틀 변경하기
        getSupportActionBar().setTitle("직원 리스트");

 

+ 다른 액티비티의 액션바의 메뉴를 다르게 설정하고 싶다면 menu 우클릭 > New > Android Resource File로 만들어준다

처음 파일명은 메인액티비티라 main으로 했으니 생성할 파일명도 해당 액티비티의 이름을 따서 입력하면 유지보수가 편리하다

댓글