-
안드로이드개발 메뉴 버튼 기능 변경안드로이드시작부터웹뷰까지 2014. 10. 17. 16:56
이번에는 안드로이드 기기의 메뉴 버튼을 컨트롤 한 방법을 기록합니다.
지난번엔 작성한 위시룸 웹뷰앱에 타이틀 바를 삭제해보았습니다.
막상 타이틀 바를 삭제하고 나니 메뉴 버튼이 있는 기기에서는 메뉴버튼을 누르면 에러가 발생하면서
강.제.종.료 되어 버립니다. 이거 뭔가 프로그램 완성도가 떨어져 보이는 군요.
일단 메뉴 버튼에러를 막아봅시다
MainActivity.java 안에 보시면
MainActivity Class 안에 아래 소스 부분이 존재합니다.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
위 내용은 타이틀 바에 적용되어있는 메뉴버튼을 눌렀을때 메뉴들을 넣고 사용할때 쓰는 소스인데요
이번작업에서는 타이틀바를 삭제하고 메뉴 버튼을 사용하지 않을 예정이므로 저부분을 삭제했습니다.
대신 에러가 발생하지 않도록 아래 소스를 삽입합니다.
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return false;
}
여기까지만 작업하면 일단 타이틀 바가 없는 앱에서 메뉴버튼 눌럿을 경우 에러가 발생하지 않습니다.
하지만 무언가 메뉴 버튼을 눌렀을 경우 기능을 추가하고 싶어집니다.
기존에 뒤로가기 버튼을 눌렀을 경우 동작에대해서 소스를 추가했던 부분에 메뉴버튼을 눌렀을 경우 동작을 추가해 봅시다.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()){
mWebView.goBack();
return true;
}
if((keyCode == KeyEvent.KEYCODE_MENU)){
mWebView.loadUrl("http://wishroom.kr/member");
return true;
}
return super.onKeyDown(keyCode, event);
}
볼드체로 표시한 부분이 새로 입력한 소스입니다.
메뉴 버튼을 눌렀을경우 위시룸에서는 로그인한 경우 회원정보 수정페이지로 이동하도록 작성해보았습니다.
참고 URL : http://stackoverflow.com/questions/11736792/how-to-completly-disable-menu-button-on-android
'안드로이드시작부터웹뷰까지' 카테고리의 다른 글
안드로이드개발 웹뷰 user agent 정보를 바꿔보자 (0) 2014.10.19 안드로이드개발 로딩화면( 스플래시 적용 ) (0) 2014.10.18 안드로이드개발 웹뷰에서 경고창 ( alert ) 이 반응 없을때 (0) 2014.10.16 안드로이드개발 앱(웹뷰) 타이틀바 없애기 (0) 2014.10.16 안드로이드개발 애뮬 한글 확인하기 (0) 2014.10.14