2010년 2월 2일 화요일

안드로이드 프로그래밍 - Menu구현의 이해(2)

뉴에서 알아야 할 Callback method와 실제 코딩을 통해 메뉴를 완성해 보겠습니다.

안드로이드 메뉴 시스템의 특징은 callback method의 호출입니다. callback은 잘 아시겠지만 프로그래머가 작성한 프로그램이 어떤 method를 실행하는 것이 아니라 운영체제 즉 시스템이 method를 호출하여 실행됩니다.

아래 코드는 http://developer.android.com/guide/topics/ui/menus.html에 있는 내용으로 아래 첨부파일에 완성된 예제가 있습니다.
[code java]
/* Creates the menu items */
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, MENU_NEW_GAME, 0, "New Game");
    menu.add(0, MENU_QUIT, 0, "Quit");
    return true;
}

/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MENU_NEW_GAME:
        newGame();
        return true;
    case MENU_QUIT:
        quit();
        return true;
    }
    return false;
}
[/code]
위 코드가 현재 실행되고 있는 모바일 기기가 있다고 가정합니다.

사용자는 기기의 "Menu"버튼을 누르면 안드로이드는 onCreateOptionsMenu()를 실행하는데 완성된 예제를 보면 알겠지만, 코드의 어디에서도 onCreateOptionsMenu()를 직접 호출하는 곳은 없습니다.

onCreateOptionsMenu()는 호출당하게 되면 프로그램은 시스템으로 부터 Menu객체를 넘겨받게 되고, 여기에 필요한 메뉴항목들을 추가하면 됩니다.

onOptionsItemSelected()에서도 마찬가지로 callback method이며, 위에서 추가된 메뉴를 손꾸락으로 꾸욱 누르면, 즉 "New Game"이나 "Quit"를 누르면 해당 내용이 실행되겠죠.

이처럼 callback method의 특징은 코드를 어딘가에 구현은 해놓고 있지만, 프로그램 자체적으로는 호출하지 않습니다. 대신 시스템이 해당 method를 필요에 의해서 실행하게 되며, 프로그래머는 이를 적절하게 구현만 해놓으면 알아서 내용을 가져갑니다.
안드로이드 프로그래밍 - Menu구현의 이해(1)
안드로이드 프로그래밍 - Menu구현의 이해(3)

댓글 없음:

댓글 쓰기