본문 바로가기

Trouble Shooting

안드로이드 뒤로가기 버튼(백버튼) 보이기 및 가리기

안드로이드 프로그래밍을 접하면서 어려운 점 중의 하나가, 잘못된 정보들이 생각외로 많다는 것이다. 아마도 API버전이 올라가면서 예전에는 되었던 것이 폐기되거나 더 나은 방식이 제공되거나 했기 때문이라 생각된다.


뒤로가기 버튼 혹은 백버튼 보이기


두가지 방식이 있다. 설정하는 방식과 동적으로 프로그래밍하는 것이다.

설정방식 : AndroidManifest.xml

<activity
android:name=".VocaNoteNewActivity"
android:label="new Voca note"
android:parentActivityName=".MainActivity">
</activity>


android:parentActivityName" 속성에 짝지워진 부모 Activity를 설정하면 자동으로 뒤로가기 버튼이 보여진다.


동적방식 : 프로그래밍에 의한 제어

protected void onCreate(Bundle savedInstanceState) {

...

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

...

}


주의할 점은, "getActionBar" 대신에 "getSupportActionBar"를 사용하라는 구글의 권고를 따르는 것인데, 라이브러리 호환성과 관련있는 듯 한데, 굳이 함수를 따로이 했는지 알쏭달쏭하다.



뒤로가기 버튼 가리기

겸사겸사 설정방식과 동적방식중 누가 우선권일까?

  • AndroidManifect.xml 파일에 부모 activity를 설정하고
  • 해당 activity#onCreate함수에서 액션바의 setDisplayHomeAsUpEnabled(false)

결과는 동적방식에 우선권이 있어, 되돌아가기 버튼은 보이지 않게 되었다.