[Android] 액션바 - ActionBar

원준·2023년 7월 20일

Android Studio

목록 보기
25/40

ActionBar ?

  • 안드로이드를 실행시 가장 상단에 존재하는 제목의 이름과 박스를 말한다.
  • 액션바를 생성할려면 RecyclerView와 거의 동일한 방법으로 Layout을 우선 만들어 줘야한다.

폴더/파일 만들기

  1. 액션바를 만들기 위해 menu 폴더를 만들어야 한다.

  2. 만든 menu 폴더에서 Menu Resource File을 만들자.

    • 이름은 최대한 관련이 있게 만드는 것이 좋다.


액션바 설정

  • Menu Item을 가장 많이 사용하니 해당 item으로 설명을 하겠다.
  • 대표적으로 작성해야하는 옵션이 있다.
    • id : id를 설정한다.
    • title : 아이콘을 설정하지 않는다면 텍스트로 설정한다.
    • icon : 해당 item의 이미지를 설정한다.
    • showAsAction : 보여지는 방식에 대해 설정한다.

showAsAction

  • always

    • 해당 item을 항상 보이게 만들어 준다.
  • never

    • 해당 item을 항상 숨겨서 만들어 준다.
  • ifRoom

    • 액션 아이템을 표시할 수 있는 공간이 있다면 액션 아이템을 표시함
  • withText

    • 메뉴 항목의 텍스트를 함께 액션 아이템으로 표시

테스트 용 완성

아니 사용은 ?

  • 각각의 액티비에 맞는 액션바를 생성하고 설정하는것이 가장 바람직하다.

1. 액션바 타이틀 변경

  • 각각의 액티비티의 액션바 타이틀을 변경할 수 있다.
    //onCreate()
    getSupportActionBar().setTitle("직원쓰 리스트쓰");

2. 액션바 버튼 생성

  • 아까 만든 테스트용 액션바를 우선 화면에 나오도록 연결해야한다.

    // Main Activity의 메서드롤 등록하자.
    // Override가 되어있는 함수이다.
    @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          //액션바에 메뉴가 나오도록 설정한다.
          getMenuInflater().inflate(R.menu.main, menu);
    
          return true;
      }

3. 액션바 버튼 실행

  • 보여진 액션바 버튼에 대해 선택시 실행되도록 로직을 작성해야한다.

  • 생성만 했기 때문에 실제로 실행은 아래의 코드라고 생각하면 된다.

    @Override
       public boolean onOptionsItemSelected(@NonNull MenuItem item) {
           //유저가 누른것이 + 아이콘인 경우, MemberAdd 실행
           int itemId = item.getItemId();
    
           if(itemId == R.id.menuAdd){ //선택된 액션바 id가 설정한 id와 동일할 경우.
               Intent intent = new Intent(MainActivity.this, MemberAdd.class);
               launcher.launch(intent);
           }else if(itemId == R.id.menuAbout){
    
           }else if(itemId == R.id.menuShare){
    
           }
    
           return super.onOptionsItemSelected(item);
       }

액션바 백버튼 화살표 만들기

  • 가끔보면 액션바 왼쪽에 뒤로가기 화살표가 있는 것을 확인할 수 있는데, 이건 따로 만드는것이 아닌 내부적으로 생성되어 있는 UI를 불러와 코드를 작성하는 것이다.
  1. 뒤로가기 액션바 생성

    // onCreate()
    
    // 이전 택티비티 돌아갈수 있는 화살표 표시
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  2. 뒤로가기 액션바 작동 코드

    // Main Activity 
    // Override 메서드
    
    @Override
    public boolean onSupportNavigateUp() {
        finish();
        return true;
    }
profile
공부해보자

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

글 잘 봤습니다, 감사합니다.

답글 달기