【SubMenu】
【方法】
一、onCreateOptionsMenu //重写activity onCreateOptionsMenu 方法,创建menu
二、onOptionsItemSelected //当menu中的子菜单被选择时,作出响应
---------------------------------------------------------------------------------------------------------------------------------------------
【实例+代码】
【开始界面】
【按下Menu后】
上图这两个都是SubMenu
【按下“设置字体大小”】
这是Menuitem 的ADD方法,添加的弹出式菜单
【按下20号字体后的效果 】
----------------------------------------------------------------------------------------------------------------------------------------
public class MenuTest extends Activity
{
//自定义,=号右边可任写,但要唯一
final int FONT_10 = 0x111;
final int FONT_20 = 0x112;
final int FONT_30 = 0x113;
final int FONT_COLOR_RED=0x121;
final int FONT_COLOR_BLUE=0x122;
final int FONT_COLOR_YELLOW=0x123;
EditText show ;
@Override
//不费话了
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show=(EditText)findViewById(R.id.txt);
show.setText("I am talent!");
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
SubMenu fontMenu=menu.addSubMenu("设置字体大小");//创建子菜单文字
fontMenu.setIcon(R.drawable.font);//子菜单图标
fontMenu.setHeaderTitle("字体大小");//子菜单弹出菜单文字
fontMenu.setHeaderIcon(R.drawable.font);//子菜单弹出菜单图标
fontMenu.add(0, FONT_10, 1, "10号字体");//order(第三个参数):弹出菜单的先后顺序
fontMenu.add(0, FONT_20, 2, "20号字体");//order:顺序
fontMenu.add(0, FONT_30, 3, "30号字体");//order:顺序
SubMenu colorMenu=menu.addSubMenu("设置字体颜色");
colorMenu.setIcon(R.drawable.color);
colorMenu.setHeaderTitle("颜色");
colorMenu.setHeaderIcon(R.drawable.color);
colorMenu.add(0, FONT_COLOR_RED, 1, "red");//order:顺序
colorMenu.add(0, FONT_COLOR_BLUE, 3, "blue");//order:顺序
colorMenu.add(0, FONT_COLOR_YELLOW, 2, "yellow");//order:顺序
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case FONT_10:
show.setTextSize(10*2);
break;
case FONT_20:
show.setTextSize(16*4);
break;
case FONT_30:
show.setTextSize(32*8);
break;
case FONT_COLOR_RED:
show.setTextColor(Color.RED);
break;
case FONT_COLOR_YELLOW:
show.setTextColor(Color.YELLOW);
break;
case FONT_COLOR_BLUE:
show.setTextColor(Color.BLUE);
break;
}
return true;
}
}