Android系统的菜单支持主要通过4个接口来实现
- Menu接口只是一个父接口,该接口下有两个子接口。
- SubMenu:它代表一个普通菜单。
- ContextMenu:它代表一个子菜单。
Menu接口定义了如下方法来添加菜单或菜单项。
- MenuItem add(int titleRes):添加一个新的菜单项。
- MenuItem add(int groupld,int itemId,int order,CharSequence title):添加一个新的处于groupId组的菜单项。
- MenuItem add(CharSequence title)添加一个新的菜单项。
- SubMenu addSubMenu(int titleRes)
- SubMenu addSubMenu(int groupId,int itemId,int order,int titleRes):添加一个新的处于groupId组的子菜单。
- SubMenu addSubMenu(CharSequence title):添加一个新的子菜单。
- SubMenu addSubMenu(int groupId,int itemId,int order,CharSequencr title):添加一个新的处于groupI的组的子菜单。
添加菜单或子菜单的步骤如下:
1.重写Activity的onCreatOptionsMenu(Menu mens)的方法,在该方法里调用Menu对象的方法来添加菜单项或子菜单。
2.如果希望应用程序能响应菜单项的单击事件,重写Activity的onOptionsItemSelected方法即可。
示例:
public class MainActivity extends Activity { final int GREEN=1; final int RED=2; final int BLUE=3; private TextView text; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text=(TextView)findViewById(R.id.text); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); SubMenu colorMenu=menu.addSubMenu("字体颜色"); colorMenu.setIcon(R.drawable.ic_action_search); colorMenu.setHeaderIcon(R.drawable.ic_action_search); colorMenu.setHeaderTitle("设置字体颜色"); colorMenu.add(0,GREEN,0,"绿色"); colorMenu.add(0,RED,0,"红色"); colorMenu.add(0,BLUE,0,"蓝色"); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem mi){ switch(mi.getItemId()){ case GREEN:text.setTextColor(Color.GREEN);break; case RED:text.setTextColor(Color.RED);break; case BLUE:text.setTextColor(Color.BLUE);break; } return true; } }