본문 바로가기
Java/AndroidStudio

Android - 액션바 설정

by 하니__ 2024. 6. 11.

 

 

 

액션바 기본 설정

 

이렇게 상단에 bar가 있는것이 액션바

 

 

이 곳에서 설정이 가능하다

기존에 이렇게 적혀있는데

 

일단 종류가 여러가지 있다

 

NoActionBar를 설정하게되면 액션바가 사라지게 된다

 

 

액션바 이름 바꾸기

만약

이 액션바의 문구를 바꾸고 싶다면

 

 

온 크리에이트 아래에

getSupportActionBar().setTitle("포스팅 리스트");

"  "안에 넣고싶은 문구를 넣어주면 되겠다

 

 

액션바 메뉴버튼 생성

그리고 액션바에

 

버튼을 만들고 싶다면

 

 

 

리소스폴더에서 마우스 우클릭 new 안드로이드 리소스 디렉토리를 선택

 

 

 

이름은 메뉴로 짓자

 

그리고 만들어진 메뉴 폴더에서 다시

마우스 우클릭 new 메뉴 리소스파일 선택

 

메인화면에서 띄울 액션바니까 메인으로 이름을 지어주자

 

 

그러면 XML 파일이 생성되고

 

아래와같이 꾸밀수 있게된다

 

 

 

그럼 아이템을 하나 끌고와보면 아래와같이 우측에 

 

id설정과 타이틀 아이콘 그리고

show as Action이 있는데

아이디설정은 알다싶이 이 것을 사용하기위한 이름이고

타이틀도 자신이 기억하기쉽게 하기 위하여 짓는 이름,

아이콘은 보기 좋게 하는 영역이고

 

show as Action에서는 아래와같이

always

never

등등등이 있는데

 

 

얼웨이즈를 선택하게 되면

 

아래와같이

항상 액션바에 나타나게 되고

 

 

 

네버를 선택하게되면

항상 3점을 클릭해야만 나타나고

평소에는 숨어있는 형태가 된다

 

ifRoom의 경우에는 액션바에 나올수 있을때는 나오고

나머지상태에는 숨어있는데

보통 쓰이지않고 나머지들도 잘 쓰이지않으니 넘어가자

 

 

 

다음은 이제 만든것을 화면에 나오게끔 해야한다

 

메인액티비티로 들어가서

 

아래와 같은 위치

즉 온크리에이트와 같은 위치에

아래 문구를 써주자

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

온크리에이트 옵션메뉴로 이럴때~~~~

겟메뉴인플래터~~로 나오게끔 한다

 

 

 

이렇게 나오게 되고

 

액션바 메뉴버튼 기능 설정

그렇다면 기능도 주어야할텐데

 

다시 동등한 위치에 아래와같이

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    if( item.getItemId() == R.id.menuAdd){
        Intent intent = new Intent(MainActivity.this, AddActivity.class);
        startActivity(intent);
    }
    return super.onOptionsItemSelected(item);
}

if문으로 아이템 아이디를 가져와 내가 설정한 아이디가 맞다면

이라는 질문으로

 

인텐트를 사용하여 해당하는 액티비티로 이동하는 문구를 써주자

 

추가하고싶은 기능이 더 있다면 else if를 넣어 더 써주자

 

액션바 뒤로가기버튼

그렇게해서 넘어간 액티비티에서 이번엔

아래와같이

만약 이런 모습처럼

포스팅을 생성하는곳에서 뒤로가기 화살표와

화살표를 누르면 돌아가게끔 만들고 싶다면?

 

 

위와같이 이번엔 add에 맞게 추가해주고

getSupportActionBar().setTitle("포스팅 생성");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

 

.setDisplayHomeAsUpEnabled(true)

를 통해서 화면에 표시하고

 

동일한 위치에

 

@Override
public boolean onSupportNavigateUp() {
    finish();
    return true;
}

네비게이트업을 통해 기능을 활성화 시키고

finish() 를 사용하여 화면을 종료시켜

이전화면인 메인액티비티로 되돌리자