본문 바로가기

개발자/Android

옵션메뉴 같은 각 액티비티에 공통인 코드 처리 방법



옵션메뉴 : 폰에 왼쪽 맨 밑에 책갈피 쌓아논 듯한 버튼 있죠 ? 앱 실행중에 가끔 누르기도 하는 버튼... 근데 이게 보통 앱 개발시에 액티비티마다 모두 떠야 되니 공통으로 들어가는 코드인데...


구현 화면 잠깐 보여드리면~ 아래 옵션메뉴가 모든 액티비티에 들어가게 되는데 이걸 간단하게 하는 방법입니다.






처음에는 모든 액티비티에  오버라이드 해서 


// @Override

// public boolean onCreateOptionsMenu(Menu menu) {

// // TODO Auto-generated method stub

// MenuInflater inflater = getMenuInflater();

// inflater.inflate(R.menu.mugen_main, menu);

//

// return true;

// }


onCreateOptionsMenu(Menu menu) 요 코드를 전부 집어넣었죠. 이게 좀 아닌듯 해서 정보를 찾아보았더니


액티비티를 상속 받는 BaseActivity를 하나 만들어 거기서 key이벤트, 메뉴 등등의 공통 처리를 해놓은 다음

실제 개발 하는 Activity에서는 BaseActivity를 상속 받아서 사용하시면 됩니다.


실제 코드로 보여드리면


아래는 공통 코드, 여기서는 옵션메뉴가 되겠죠. 액티비티를 상속한 CommonActivity 를 하나 만들고 그 안에 옵션메뉴 처리 코드만 달랑 위치시킵니다.


public class CommonActivity extends Activity {


@Override

public boolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.mugen_main, menu);

return true;

}

}


그리고 액티비티 만드는 파일에는 무조건  CommonActivity  이 놈을 상속하여 만들어 주면  됩니다.


CommonActivity  얘가 Activity를 상속하여 만들어 진것이니 당연히 Activity를 상속한 여러개가 만들어 지죠.. 아랴처럼 여러군데에서 상속해서 쓰심 됩니다.


public class Base000 extends CommonActivity {

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);


이하~~~


public class Base001 extends CommonActivity {


@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);


이하~~



궁금한거 물어보시고요. 개발자의 공유는 1만줄의 코드보다 중요합니다.