Android平台所提供的菜单有:选项菜单(OptionsMenu),上下文菜单(ContextMenu),子菜单(Submenu)
1、选项菜单:
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// getMenuInflater()方法返回一个MenuInflater类的实例,
// 用于从XML文件中读取菜单的定义,并将其转换为实际的视图
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
// 用户选择任何菜单时,将会调用onOptionsItemSelected()方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// return super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.settings:
startActivity(new Intent(this, com.shutao.sudoku.Settings.class));
return true;
}
return false;
}
2、上下文菜单:
这是一种悬浮于主界面之上的菜单。当注册到一个View对象之后,默认情况下用户可以通过长按View对象以呼出上下文菜单。上下文菜单每一个元素依然是菜单项,但不支持图标和快捷键。初始化上下文菜单是通过实现onCreateContextMunu()回调方法来完成的,处理上下文菜单的菜单项的点击事件则是通过重新实现onContextItemSelected()方法来完成的。如果要为View对象注册上下文菜单则使用registrForContextMenu().
3、子菜单:
public class TestSubMenu extends Activity {
/** Called when the activity is first created. */
private final int MENU_LOCAL = Menu.FIRST;
private final int MENU_INTERNET = Menu.FIRST + 1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
SubMenu subm = menu.addSubMenu("搜索");
subm.setIcon(R.drawable.search);
subm.add(0, MENU_LOCAL, 0, "本地");
subm.add(0, MENU_INTERNET, 0, "网络");
return true;
}
}