현실감각 0% :: [Android] Back버튼에 이벤트 넣기

컴퓨터 관련 2014.09.19 17:37

[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에서 백버튼인지 확인해서 백버튼이면 동작하게 코딩하라고 나와있었다. 암튼 두개 다 넣고 돌렸는데 별 이상은 없었음.

사이드메뉴가 닫혔는지 열렸는지 받아온 후 닫혀있으면 액티비티를 종료하고, 열려있으면 사이드메뉴를 닫아주게 코딩하면 끗!