on
[Android, Kotlin] Activity에 공통적으로 Action Bar 적용하기
[Android, Kotlin] Activity에 공통적으로 Action Bar 적용하기
Android 앱의 어떤 Activity가 실행되던 Action Bar는 공통적으로 적용해야 할 때가 있다.
하나의 액티비티에만 적용하려면 아래에서처럼 커스텀 actionbar 파일을 만들고,
적용하고 싶은 액티비티에서 onCreateOptionsMenu를 오버라이딩하여 아까 만든 파일을 액션바에 쓰겠다고 지정해주면 된다.
하지만 다른 액티비티가 실행되면 적용이 되지 않는다.
이때 해당 AppCompatActivity를 상속받는 클래스에 액션 바 관련 설정을 한 다음 액티비티를 구현할 때 그 클래스를 상속받아 구현하는 방법이 있다.
AppCompatActivity를 상속받는 BaseActivity를 만들고 onCreateOptionsMenu를 오버라이딩하여 구현하였다.
아래에는 액션바의 아이템이 선택되는 경우를 처리한 것이다.
그리고 BaseActivity는 상속 가능하도록 open class로 선언하였다.
BaseActivity에 AppCompatActivity를 상속받게 하는 이유는 자바나 코틀린은 클래스의 다중상속을 지원하지 않으므로 나중에 다른 액티비티들이 BaseActivity를 상속받으면 AppCompatActivity는 상속받을 수 없기 때문이다.
ActionBar을 적용시키고 싶은 액티비티에 BaseActivity를 상속받도록 한다.
잘 적용된 모습이다.
꼭 액션바가 아니더라도 공통적으로 구현해야 할 부분이 있을 때 이 방법을 쓰면 좋을 것이다.
from http://soyangkim98.tistory.com/7 by ccl(A) rewrite - 2021-11-02 03:27:31