개발/안드로이드

Android - ActionBar

웅'jk 2023. 2. 6. 17:28

actionbar는 위 사진처럼 + , : 메뉴에 쓰인다.

 

먼저 menu 디렉토리를 만들고 xml 파일을 하나 생성한다.

 

main.xml에 다음과 같이 추가한다.

<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>

여기서 icon은 + 모양 아이콘을 의미하며 drawable 파일에 이미지를 추가하였습니다.

 

이제 이 xml 파일을 내가 사용할 activity 에서 연결하면 된다.

 

// MainActivity 에서 오버라이딩 ( onCreate 가 아님.!)

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // 액션바의 메뉴가 나오도록 설정한다.
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
    }

 

이 연결한 메뉴들을 클릭할때마다 어떠한 작업을 하고싶다면 onCreateOptionsMenu 함수를 오버라이딩 해 정의하면 된다.

 @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        int itemId = item.getItemId();

        if(itemId == R.id.menuAdd){

        }else if(itemId == R.id.menuAbout){

        }

        return super.onOptionsItemSelected(item);
    }

 

뒤로가기 키를 만들고 싶다면 

// oncreate 함수에
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

// ocreate가 아닌 class안에 오버라이딩
 @Override
    public boolean onSupportNavigateUp() {
        finish();
        return true;
    }