'안드로이드 옵션메뉴'에 해당되는 글 2건

  1. 2012.02.29 Android - 간단한 메뉴버튼 옵션메뉴 생성하기
  2. 2011.10.19 Android - Option Menu ( 옵션메뉴 하단메뉴 )

Android - 간단한 메뉴버튼 옵션메뉴 생성하기

Android 2012.02.29 15:02


한 액티비티에서 보이는 화면에 버튼을 추가하지 않고 메뉴버튼을 선택했을 때 나타나는 옵션메뉴를 간단하게 생성해 보겠습니다.

옵션메뉴를 생성하려고 하는 곳에서 다음과 같은 소스를 추가하여 자신이 원하는 대로 수정하시면 되겠습니다.

간단하게 2개의 옵션메뉴를 생성해보겠습니다.

소스는 다음과 같습니다.


@Override

public boolean onCreateOptionsMenu(Menu menu) {

menu.add(0, 0, 0, "홈").setIcon(android.R.drawable.ic_menu_revert);

menu.add(0, 1, 0, "새로고침").setIcon(android.R.drawable.ic_menu_rotate);

return true;

}


위 소스는 메뉴버튼을 생성할 때의 메소드입니다.
add 메소드는 메뉴를 추가할 때마다 써주는 것이구요 2개 생성이니깐 2개의 메소드를 썼습니다.
add메소드는 4개의 인자를 가지는데요  
menu.add(groupId, itemId, order, titleRes)

groupId 는 메뉴 아이템을 그룹지을 때 사용되고, 
itemId 는 아이템 식별을 위해 메뉴 아이템의 고유한 이름이 됩니다.
order 는 아이템 표시 순서를 지정하는데, 기본값으로는 추가된 순서대로 표시가 되고,
title 은 메뉴 아이템이 가지는 이름이며 , 구글 공식문서에서는 문자열 리소스로 작성하도록 권고하고 있네요 

그리고 뒤에 setIcon은 보시는데로 아이콘을 같이 뛰어주기 위해 사용합니다.
현재 제가 쓴 방법은 기본으로 안드로이드에서 제공하는 이미지를 사용한 것이구요 
사용자가 직접 만든 이미지를 사용할려면 R.drawable.이미지 가 되겠지요.


@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case 0:

 //처리할 이벤트

break;
 

case 1:

 // 처리할 이벤트 

break;

default:

break;

}

return super.onOptionsItemSelected(item);

}

이 소스는 옵션메뉴의 클릭 이벤트 처리 메소드 이구요
버튼처리처럼 메뉴의 아이템아이디 값을 받아와 처리합니다. 
add 메소드로 추가할 때 적는 itemId 값입니다.


 
이런식으로 하단 메뉴버튼을 누르면 밑에서 숨겨진옵션메뉴가 스르륵 올라옵니다.

간단하게 옵션메뉴 생성하는 방법을 살펴보았습니다.
도움이 되었으면 합니다. ~~~ 뿅 

 
저작자 표시
신고
Trackback 0 : Comment 0

Write a comment


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>


실행결과

 

 

 

저작자 표시
신고
Trackback 0 : Comment 0

Write a comment