参考《疯狂android讲义》2.10节P168
1、重要接口
Android菜单相关的重要接口共有以下四个:
其中Menu为普通菜单,SubMenu包含子项,ContextMenu当长时间点击某组件时弹出的菜单。它们都有一个或多个menuItem。
2、Menu接口最常用的2个方法
(1)MenuItem add():添加一个新的菜单项
(2)SubMenu add():添加一个新的子菜单。
3、实例
package com.ljh.menudemo; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText etHelloWorld; private final int PLAIN_ITEM = 0x11b; private final int FONT_10 = 0x111; private final int FONT_15 = 0x112; private final int FONT_20 = 0x113; private final int FONT_25 = 0x114; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etHelloWorld = (EditText) findViewById(R.id.et_hello_world); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); // 为activity添加普通菜单 menu.add(0, PLAIN_ITEM, 0, "普通菜单"); // 为activity添加子菜单 SubMenu fontSubMenu = menu.addSubMenu("字体大小"); // 为子菜单添加子项 fontSubMenu.add(0, FONT_10, 0, "10号字体"); fontSubMenu.add(0, FONT_15, 0, "15号字体"); fontSubMenu.add(0, FONT_20, 0, "20号字体"); fontSubMenu.add(0, FONT_25, 0, "25号字体"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // 普通箱单被点击处所进行的操作。 case PLAIN_ITEM: Toast.makeText(this, "你单击了普通菜单", Toast.LENGTH_LONG).show(); break; // 为子菜单的子项定义被点击时所进行的操作。 case FONT_10: etHelloWorld.setTextSize(10); break; case FONT_15: etHelloWorld.setTextSize(15); break; case FONT_20: etHelloWorld.setTextSize(20); break; case FONT_25: etHelloWorld.setTextSize(25); break; } return true; } }
当点击菜单按钮时,弹出菜单,有2项:普通菜单及字体大小。点击普通菜单,弹出一个Toast,点击字体大小,弹出一个选择字体大小的选项,并根据选项调整editText中文字的大小。