[Android] Back버튼에 이벤트 넣기
[Android] Back버튼에 이벤트 넣기
안드로이드 앱을 하나 만들다가 사이드메뉴가 필요해서 Simple Side Drawer 라이브러리를 사용하게 되었다. 여는건 큰 어려움 없이 해결! 그런데 문제는 이녀석을 백버튼으로 닫으려는데 자꾸 프로그램이 닫힌다...ㅠㅠ 그래서 백 버튼에 이벤트를 넣어서 사이드메뉴가 열려있을 경우에는 프로그램은 그대로있고 사이드메뉴만 닫으려 하는데 도대체 백 버튼에 이벤트를 어떻게 줘야하는건지를 몰라 또 구글링..
찾아보니까 별거없다. 그냥 onBackPressed() 사용하면 된다.
// 종료버튼 처리(최근버전용)
@Override
public void onBackPressed() {
// 여기에 코드 입력
if(mSlidingMenu.isClosed())
{
FrmMain.this.finish();
}
else
mSlidingMenu.toggleLeftDrawer();
}
// 종료버튼 처리(구버전용)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// 여기에 코드 입력
if(mSlidingMenu.isClosed())
{
FrmMain.this.finish();
}
else
mSlidingMenu.toggleLeftDrawer();
return true;
}
구버전(영어로 써있어서 자세히 보진 않았지만 버전 프로요까지인듯)은 onBackPressed가 지원되지 않는지 onKeyDown에서 백버튼인지 확인해서 백버튼이면 동작하게 코딩하라고 나와있었다. 암튼 두개 다 넣고 돌렸는데 별 이상은 없었음.
사이드메뉴가 닫혔는지 열렸는지 받아온 후 닫혀있으면 액티비티를 종료하고, 열려있으면 사이드메뉴를 닫아주게 코딩하면 끗!