04.Anddoid2010. 5. 11. 13:52
반응형


출처 : http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=8966




res 폴더에 menu라는 폴더를 생성하고 xml 파일을 생성합니다.
예 ) menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/menu1"
        android:title="1번 메뉴"/>
    <item android:id="@+id/menu2"
        android:title="2번 메뉴"/>
    <item android:id="@+id/menu3"
        android:title="3번 메뉴"/>
     <item android:id="@+id/menu4"
        android:title="4번 메뉴"/>
</menu>


그다음 java파일에 onCreateOptionsMenu메소드를 생성하여 menu를 Override 해 줍니다.



 private Menu mMenu;

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
     mMenu = menu;        

        MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.menu, mMenu);

        menu.getItem(0).setIcon(R.drawable.icon); //icon 이미지 넣기

        menu.getItem(1).setTitle("메뉴이름 변환"); //title 변환하기

               return true;
   }

마지막으로 메뉴를 선택하였을때 이벤트를 주기위해 onOptionsItemSelected메소드를 Override 합니다.

public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

        case R.id.menu1: //위에 xml에서 만든 메뉴에서 1번 메뉴 버튼이 눌러졌을때
          break;

         case R.id.menu2: //위에 xml에서 만든 메뉴에서 2번 메뉴 버튼이 눌러졌을때
          break;

         case R.id.menu3: //위에 xml에서 만든 메뉴에서 3번 메뉴 버튼이 눌러졌을때
          break;

         case R.id.menu4: //위에 xml에서 만든 메뉴에서 4번 메뉴 버튼이 눌러졌을때
          break;
        }

        return true;
     }


위와 같은 방법으로 menu를 생성해서 사용하 실 수 있습니다.


다른 방법으로는

@Override
    public boolean onCreateOptionsMenu(android.view.Menu menu) {

     super.onCreateOptionsMenu(menu);
     
     menu.add("menu1");
     menu.add("menu1");
     menu.add("menu1");
     menu.add("menu1");    

     return true;
    }

public boolean onOptionsItemSelected(MenuItem item) {

     if (item.getTitle().toString()== "menu1"){
      }
     
     else if (item.getTitle().toString()== "menu2"){
     }

     else if (item.getTitle().toString()== "menu3"){
      }

    else if (item.getTitle().toString()== "menu4"){
     }

     
     return true;
    }

위와 같은 방법으로 menu에 바로 추가하여 xml 파일을 이용하지 않고 사용할수 있습니다.

편하시는 방법을 사용하시면 됩니다.


안드로이드 공부에 도움이 되셨으면 좋겠습니다^^^

Posted by 1010