2011. 3. 21. 13:32 android App

[13-3] 메뉴


[13-3] 메뉴

[01] 메뉴

1. 옵션 메뉴 1

package exam.Input;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import exam.AndroidExam.*;

public class OptionMenu extends Activity {
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  TextView MyText = new TextView(this);
  MyText.setText("메뉴 키를 누르세요.");
  setContentView(MyText);
 }

 public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
  MenuItem item=menu.add(0,1,0,"짜장");
  item.setIcon(R.drawable.icon);
  item.setAlphabeticShortcut('a');
  //menu.add(0,1,0,"짜장").setIcon(R.drawable.icon).setAlphabeticShortcut('a');
  menu.add(0,2,0,"짬뽕").setIcon(R.drawable.icon);
  SubMenu etc = menu.addSubMenu("기타");
  etc.add(0,3,0,"우동");
  etc.add(0,4,0,"만두");

  return true;
 }

 public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
  case 1:
   Toast.makeText(this,"짜장은 달콤해",Toast.LENGTH_SHORT).show();
   return true;
  case 2:
   Toast.makeText(this,"짬뽕은 매워",Toast.LENGTH_SHORT).show();
   return true;
  case 3:
   Toast.makeText(this,"우동은 시원해",Toast.LENGTH_SHORT).show();
   return true;
  case 4:
   Toast.makeText(this,"만두는 공짜야",Toast.LENGTH_SHORT).show();
   return true;
  }
  return false;
 }
}

 

 

2. XML 기반 옵션 메뉴

<menu xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:id="@+id/jjajang"
  android:title="짜장"
  android:icon="@drawable/icon"
  android:alphabeticShortcut="a"
  />
 <item android:id="@+id/jjambbong"
  android:title="짬뽕"
  android:icon="@drawable/icon"
  />
 <item android:id="@+id/submenu"
  android:title="기타">
  <menu>
   <item android:id="@+id/udong"
    android:title="우동"
    />
   <item android:id="@+id/mandoo"
    android:title="만두"
    />
  </menu>
 </item>
</menu>

 


package exam.Input;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import exam.AndroidExam.*;

public class OptionMenu2 extends Activity {
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  TextView MyText = new TextView(this);
  MyText.setText("메뉴 키를 누르세요.");
  setContentView(MyText);
 }

 public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.menu,menu);
     
     return true;
    }
   
    public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
     case R.id.jjajang:
      Toast.makeText(this,"짜장은 달콤해",Toast.LENGTH_SHORT).show();
      return true;
     case R.id.jjambbong:
      Toast.makeText(this,"짬뽕은 매워",Toast.LENGTH_SHORT).show();
      return true;
     case R.id.udong:
      Toast.makeText(this,"우동은 시원해",Toast.LENGTH_SHORT).show();
      return true;
     case R.id.mandoo:
      Toast.makeText(this,"만두는 공짜야",Toast.LENGTH_SHORT).show();
      return true;
     }
     return false;
    }
}

 


3. 체크 박스 옵션 메뉴
android:checkableBehavior="none": 체크 할 수 없는 상태.
android:checkableBehavior="all": 모든 항목을 개별적으로 선택 가능.
android:checkableBehavior="single": 하나의 항목만 선택 가능.


<menu xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:id="@+id/submenu"
  android:title="Sub Menu">
  <menu>
            <group android:id="@+id/checkable_group"
                    android:checkableBehavior="all">
                <item android:id="@+id/bigfont"
                        android:title="BigFont" />
            </group>
            <group android:id="@+id/exclusive_checkable_group"
                    android:checkableBehavior="single">
                <item android:id="@+id/red"
                        android:title="Red"
                        android:checked="true" />
                <item android:id="@+id/green"
                        android:title="Green" />
                <item android:id="@+id/blue"
                        android:title="Blue" />
            </group>
  </menu>
 </item>
</menu>

 


package exam.Input;

import android.app.*;
import android.graphics.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import exam.AndroidExam.*;

public class MenuCheck extends Activity {
 Button mBtn;
 
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.input_menucheck);
  mBtn = (Button)findViewById(R.id.button);
 }

 public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.menucheck,menu);
     
     return true;
    }
 
 public boolean onPrepareOptionsMenu(Menu menu) {
  if (mBtn.getTextSize() == 40) {
   menu.findItem(R.id.bigfont).setChecked(true);
  } else {
   menu.findItem(R.id.bigfont).setChecked(false);
  }
  
  int color = mBtn.getTextColors().getDefaultColor();
  
  if (color == Color.RED) {
   menu.findItem(R.id.red).setChecked(true);
  }
  if (color == Color.GREEN) {
   menu.findItem(R.id.green).setChecked(true);
  }
  if (color == Color.BLUE) {
   menu.findItem(R.id.blue).setChecked(true);
  }
  return true;
 }
   
    public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
     case R.id.bigfont:
      if (item.isChecked()) {
       mBtn.setTextSize(20);
      } else {
       mBtn.setTextSize(40);
      }
      return true;
     case R.id.red:
   mBtn.setTextColor(Color.RED);
      return true;
     case R.id.green:
   mBtn.setTextColor(Color.GREEN);
      return true;
     case R.id.blue:
   mBtn.setTextColor(Color.BLUE);
      return true;
     }
     return false;
    }
}

 


4. Context menu
   - 뷰를 롱클릭하거나 옵션 메뉴를 선택하면 출력되는 메뉴.


<?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"
    >
<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
    />

</LinearLayout>

 


package exam.Input;

import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.util.*;
import android.view.*;
import android.widget.*;
import exam.AndroidExam.*;

public class ContextMenuTest extends Activity {
    Button mBtn;
    EditText mEdit;
    MyImage mImage;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.input_contextmenu);
       
        mBtn = (Button)findViewById(R.id.button);
        registerForContextMenu(mBtn);
       
    }
   
    public void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
     super.onCreateContextMenu(menu, v, menuInfo);
     
     if (v == mBtn) {
      menu.setHeaderTitle("Button Menu");
         menu.add(0,1,0,"Red");
         menu.add(0,2,0,"Green");
         menu.add(0,3,0,"Blue");
     }

    }
   
    public boolean onContextItemSelected (MenuItem item) {
     switch (item.getItemId()) {
     case 1:
      mBtn.setTextColor(Color.RED);
      return true;
     case 2:
      mBtn.setTextColor(Color.GREEN);
      return true;
     case 3:
      mBtn.setTextColor(Color.BLUE);
      return true;
     return true;
    }
}

 

 

 

 

Posted by ▶파이팅◀

블로그 이미지
Let's start carefully from the beginning
▶파이팅◀

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함