Android - Option Menu ( 옵션메뉴 하단메뉴 )

Android 2011.10.19 01:16

옵션 메뉴는 디바이스 메뉴 버튼을 클릭했을 때 디바이스 하단에 나오는 메뉴를 말합니다. 서브메뉴라고도 합니다.
기본적으로 아래에 6개까지 메뉴를 보여줄 수 있으며, 메뉴가 더 많아질 경우에는 더보기 버튼이 보이게 됩니다.

 옵션메뉴에서 사용할 클래스와 메소드를 살펴보겠습니다.

android.app.Activity 클래스 메소드
boolean onCreateOptionsMenu(Menu menu)

액티비티의 옵션 메뉴를 생성한다한번만 호출됩니다.
boolean onPrepareOptionMenu(Menu menu)
옵션 메뉴를 화면에 보여주기 전에 준비 작업을 수행하며 메뉴를 불러올 때마다 호출됩니다.
boolean onOptionsItemSelected(MenuItem item)
메뉴 아이템이 선택될 때마다 호출됩니다.

android.view.Menu 클래스의 메소드
abstract MenuItem add(int titleRes)
메뉴에 새로운 메뉴 아이템을 추가합니다.
titleRes : 문자열 리소스 아이디
반환 : 새로 추가된 메뉴 아이템
abstract MenuItme add(int groupId, int itemId, int order, CharSequence title)
메뉴에 새로운 메뉴 아이템을 추가합니다.
groupId : 그룹으로 지정하고 싶은 그룹 아이디
그룹에 포함되지 않을 경우는 Menu.NONE으로 설정
itemId : 유일한 아이템 아이디
필요 없을 경우에는 Menu.NONE으로 설정
order : 아이템의 순서
순서를 지정하지 않을 경우에는 Menu.NONE으로 설정
title : 아이템에 보여줄 문자열
반환 : 새로 추가된 메뉴 아이템
abstract MenuItem add(int groupId, int itemId, int order, int titleRes)
문자열 리소스 titleRes를 사용하여 새로운 아이템을 메뉴에 추가합니다.
abstract MenuItem add(CharSequence title)
메뉴에 새로운 메뉴 아이템을 추가합니다.
abstract MenuItem setIcon(int iconRes)
지정된 리소스 아이디(iconRes)가 가리키느 아이콘을 메뉴에 추가합니다.


 간단하게 옵션메뉴를 실습해보도록 하겠습니다.

프로젝트 생성

Project name : ExamOptionsMenu
Build Target : Android 2.1
Package name : jsh.exam.option
Create Activity : main
Min SDK Version : 7


src

main.java

package jsh.exam.option;

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

public class main extends Activity {
 /** Called when the activity is first created. */

 // 옵션메뉴를 구문하기 위한 아이디값 지정
 private int ITEM0 = 0, ITEM1 = 1, ITEM2 = 2;

 // 다른 메소드에서 사용하기위해 멤버변수 지정
 TextView tv1;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  // 텍스트뷰를 사용하기 위한 구문
  tv1 = (TextView) findViewById(R.id.textView1);

 }

 // 옵션메뉴 생성
 public boolean onCreateOptionsMenu(Menu menu) {
  // 늘어날수록 옵션메뉴가 증거
  // 6개 이상 시 더보기 버튼 생성
  // add는 메뉴추가 seticon은 아이콘 변경
  menu.add(0, ITEM0, 0, "메뉴1").setIcon(R.drawable.icon);

  menu.add(0, ITEM1, 0, "메뉴2").setIcon(R.drawable.icon);

  menu.add(0, ITEM2, 0, "메뉴3").setIcon(R.drawable.icon);

  return true;

 }

 // 메뉴 중 선택 했을 때 이벤트 처리
 public boolean onOptionsItemSelected(MenuItem item) {

  // 선택 시 해당 메뉴의 제목을 텍스트 뷰로 출력
  tv1.setText("눌린 버튼  : " + item.getTitle());

  return false;

 }

}


res

main.xml



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="
http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TextView
  android:layout_width="wrap_content"
  android:text="메뉴버튼을 눌러 선택해주세요"
  android:layout_height="wrap_content"
  android:id="@+id/textView1"
  android:textAppearance="?android:attr/textAppearanceLarge"></TextView>
</LinearLayout>


실행결과

 

 

 

저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

Write a comment