일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ar vr 차이
- rxjava hot observable
- 클래스
- 2022 플러터 안드로이드 스튜디오
- 스택 큐 차이
- 2022 플러터 설치
- 자바 다형성
- rxjava disposable
- 안드로이드 레트로핏 crud
- 서비스 vs 쓰레드
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- jvm이란
- ANR이란
- rxjava cold observable
- 안드로이드 라이선스 종류
- 스택 자바 코드
- Rxjava Observable
- 멤버변수
- jvm 작동 원리
- 플러터 설치 2022
- android retrofit login
- 안드로이드 유닛 테스트 예시
- 안드로이드 os 구조
- 안드로이드 유닛테스트란
- 객체
- 안드로이드 레트로핏 사용법
- android ar 개발
- 큐 자바 코드
- 서비스 쓰레드 차이
- Today
- Total
나만을 위한 블로그
[Android] 액티비티의 액션바 제목 수정하는 법 본문
햄버거 버튼과 Title, 돋보기 버튼 등이 놓이는 이 곳을 보통 액션바(ActionBar)라고 부른다.
이곳은 특별히 설정해놓지 않으면 /res/values 경로의 strings.xml에 있는 app_name 값(프로젝트명)으로 자동 설정되어, 어떤 액티비티로 이동하더라도 app_name 값이 나온다.
이 글에선 이곳의 텍스트를 내 마음대로 커스텀하는 법을 포스팅하려 한다.
먼저 프로젝트를 임의로 하나 만들었다. 그 다음 텍스트뷰 내용만 수정한 다음 빌드하면 이런 모양의 앱이 빌드된다.
그런데 이 액티비티에는 회원가입을 할 수 있도록 EditText를 놓고 버튼도 넣고 이것저것 넣을 거라, 저 ActionBarTest란 이름을 없애고 '회원가입'이란 텍스트를 나오게 해서 사용자가 알아보기 쉽게 하고 싶다. 이럴 땐 어떻게 해야 될까?
방법은 매우 간단하다. 자바 파일의 onCreate() 안에 이런 코드를 적으면 된다.
ActionBar ac = getSupportActionBar();
ac.setTitle("회원가입");
액션바의 참조 변수를 얻어서 setTitle()을 통해 액션바의 title을 회원가입으로 바꾼다는 코드다.
이렇게 한 다음 빌드하면 ActionBarTest가 아니라 회원가입으로 바뀐 걸 볼 수 있다.
이걸로 끝이다. 당연한 거지만 NoActionBar라는 theme 속성을 위 액티비티에 부여했을 경우에는 컴파일 과정에서 에러가 발생할 것이다.
왜냐면 액티비티에 있는 액션바의 참조 변수를 가져와야 하는데 NoActionBar 속성을 줬기 때문에, 참조 변수를 얻어오지 못해 컴파일 과정에서 에러가 발생하는 것이다.
액션바 객체를 얻을 수 있는 theme라면 위 코드를 사용해서 자유롭게 액션바 title 내용을 변경할 수 있다.
물론 액티비티가 아닌 프래그먼트에서도 가능하지만, 액티비티일 때와 조금 다른 코드를 써야 한다.