Android Menu 상세 설명 및 예시 코드

7676 단어 AndroidMenu
Android Menu 상세 설명:
1.옵션 메뉴 OptionsMenu
2.컨 텍스트 메뉴 ContextMenu
3.하위 메뉴 SubMenu
Android 사용자 인 터 페 이 스 를 구성 하 는 View 이외에 메뉴 와 대화 상자 가 있 습 니 다.이 강 의 는 메뉴 의 사용 을 함께 배 워 보 겠 습 니 다.
메뉴 는 사용자 인터페이스 에서 가장 흔히 볼 수 있 는 요소 로 사용 도 매우 빈번 하 다.안 드 로 이 드 에서 메뉴 는 다음 과 같은 세 가지 로 나 뉘 는데 옵션 메뉴(OptionsMenu),컨 텍스트 메뉴(ContextMenu)와 하위 메뉴(SubMenu)로 나 뉘 는데 다음은 각각 예 를 들 어 설명 한다.
1.옵션 메뉴 OptionsMenu
Android 휴대 전화 에 Menu 버튼 이 있 습 니 다.Menu 를 눌 렀 을 때 모든 Activity 에서 이 요청 을 선택 하여 처리 할 수 있 습 니 다.화면 밑 에 메뉴 가 나타 나 면 이 메뉴 를 옵션 메뉴 Options Menu 라 고 부 릅 니 다.일반적인 상황 에서 옵션 메뉴 는 최대 2 줄 마다 3 개의 메뉴 항목 을 표시 합 니 다.이 메뉴 항목 들 은 아이콘 이 있 고 Icon Menus 라 고도 부 릅 니 다.6 개 이상 이면...여섯 번 째 항목 부터 숨겨 집 니 다.여섯 번 째 항목 에 More 가 나타 납 니 다.More 를 클릭 해 야 여섯 번 째 항목 과 그 후의 메뉴 항목 이 나타 납 니 다.이 메뉴 항목 들 은 Expanded Menus 라 고도 합 니 다.
다음 에 우 리 는 하나의 예 를 통 해 옵션 메뉴 를 배 웁 니 다.중요 한 힌트 는 모두 코드 주석 에 넣 었 습 니 다.주의 하 세 요.
1.새 항목 Lesson 16HelloMenu,주 활동 이름 은 MainHelloMenu.java
2.res\layout\main.xml 의 내용 은 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="#003399" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
    <textview android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/TextView01" android:text="      " android:layout_margintop="5dp" android:textsize="20sp">
    </textview>

    <textview android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/TextView02" android:text="1、    Menu       " android:layout_margintop="5dp" android:textsize="20sp">
    </textview>
</linearlayout>
3.MainHelloMenu.java 의 내용 은 다음 과 같다.

package android.basic.lesson16;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainHelloMenu extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    //   Menu ,      Activity onCreateOptionsMenu  ,         Menu   menu      
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        /*
         * add()       ,   :
         * 1、  ,         Menu.NONE,
         * 2、Id,     ,Android    Id        
         * 3、  ,                   
         * 4、  ,       
         */
        menu.add(Menu.NONE, Menu.FIRST + 1, 5, "  ").setIcon(
                android.R.drawable.ic_menu_delete);
        // setIcon()         ,             ,       , 
        // android.R           ,           R   
        menu.add(Menu.NONE, Menu.FIRST + 2, 2, "  ").setIcon(
                android.R.drawable.ic_menu_edit);
        menu.add(Menu.NONE, Menu.FIRST + 3, 6, "  ").setIcon(
                android.R.drawable.ic_menu_help);
        menu.add(Menu.NONE, Menu.FIRST + 4, 1, "  ").setIcon(
                android.R.drawable.ic_menu_add);
        menu.add(Menu.NONE, Menu.FIRST + 5, 4, "  ").setIcon(
                android.R.drawable.ic_menu_info_details);
        menu.add(Menu.NONE, Menu.FIRST + 6, 3, "  ").setIcon(
                android.R.drawable.ic_menu_send);
        // return true     
        return true;

    }

    //        
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case Menu.FIRST + 1:
            Toast.makeText(this, "        ", Toast.LENGTH_LONG).show();
            break;
        case Menu.FIRST + 2:
            Toast.makeText(this, "        ", Toast.LENGTH_LONG).show();
            break;
        case Menu.FIRST + 3:
            Toast.makeText(this, "        ", Toast.LENGTH_LONG).show();
            break;
        case Menu.FIRST + 4:
            Toast.makeText(this, "        ", Toast.LENGTH_LONG).show();
            break;
        case Menu.FIRST + 5:
            Toast.makeText(this, "        ", Toast.LENGTH_LONG).show();
            break;
        case Menu.FIRST + 6:
            Toast.makeText(this, "        ", Toast.LENGTH_LONG).show();
            break;
        }

        return false;
    }

    //         ,          ,menu       、back                  
    @Override
    public void onOptionsMenuClosed(Menu menu){
        Toast.makeText(this, "       ", Toast.LENGTH_LONG).show();
    }

    //          
    @Override
    public boolean onPrepareOptionsMenu(Menu menu){
        Toast.makeText(this, "        onPrepareOptionsMenu      ,                    ", Toast.LENGTH_LONG).show();
        //    false,         menu       ,onCreateOptionsMenu        
        return true;
    }
}
4.프로그램 실행,구현 효과 그림:




어린이 신발 들 은 액 티 비 티 의 옵션 메뉴 와 관련 된 세 가지 방법 에 유의 할 수 있다.
5.위의 예 를 xml 로 바 꾸 고 res 에 디 렉 터 리 menu 를 새로 만 들 고 그 중에서 options 를 만 듭 니 다.menu.xml,내용 은 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item01" android:icon="@android:drawable/ic_menu_add" android:title="  "></item>
    <item android:id="@+id/item02" android:icon="@android:drawable/ic_menu_edit" android:title="  "></item>
    <item android:id="@+id/item04" android:icon="@android:drawable/ic_menu_info_details" android:title="  "></item>
    <item android:id="@+id/item05" android:icon="@android:drawable/ic_menu_delete" android:title="  "></item>
    <item android:id="@+id/item06" android:icon="@android:drawable/ic_menu_help" android:title="  "></item>
</menu>
6.MainHelloMenu.java 의 onCreate OptionsMenu()방법 을 변경 합 니 다.내용 은 다음 과 같 습 니 다.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    this.getMenuInflater().inflate(R.menu.options_menu, menu);
    return true;
}
7.다시 실행 프로그램 보기 결과:
  두 가지 방법 을 비교 해 보면 개인 적 으로 메뉴 의 xml 를 미리 정의 하 는 것 이 좋 고 프로그램 코드 부분 이 뚜렷 할 것 같 습 니 다.2.컨 텍스트 메뉴 ContextMenu(계속)3.하위 메뉴 SubMenu(계속)
이상 은 안 드 로 이 드 메뉴 자료 에 대한 정리 입 니 다.추 후 관련 자 료 를 계속 보충 하 겠 습 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기