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;
}
}
'android App' 카테고리의 다른 글
13-4 대화상자 (0) | 2011.03.21 |
---|---|
[13-2-D2][UI 설계] ListView, Adapter (0) | 2011.03.21 |
[13-D2][UI 설계] Spinner, RadioGroup, RadioButton, CheckBox (0) | 2011.03.21 |
[12-D2][UI 설계] EditText와 TableLayout (0) | 2011.03.21 |
[11-D2][UI 설계] 지역화(국제화), ImageView, RelativeLayout, 한글 Encoding (0) | 2011.03.21 |