菜单的显示方法有以下几种:使用java代码显示普通菜单、使用xml文件显示普通菜单、显示上下文菜单、使用ActionMode显示菜单、显示弹出菜单。这里我们首先介绍一下使用java代码显示普通菜单的方式。
整体思路:在MainAcitivity的onCreateOptionsMenu方法中,添加3个菜单,分别指定它的图标、标题、快捷键等,在onOptionsItemSelected方法中,设置选择菜单之后的操作。其中一个操作是跳转到另一个activity,注意在清单文件AndroidManifest.xml文件中注册另一个activity。
MainActivity.java文件:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. // 用xml加载菜单的方式 // getMenuInflater().inflate(R.menu.main, menu); // 使用java代码实现菜单的方式 最多可以显示6个子菜单 // 第一个参数是组id,第二个参数是菜单选项id,第三个参数菜单显示顺序,第四个参数菜单标题 MenuItem menuItem=menu.add(1001, 100, 1, "系统菜单");//返回一个MenuItem // 给菜单设置图标 menuItem.setIcon(R.drawable.ic_launcher);//往往不显示出来 // 设置菜单标题 menuItem.setTitle("菜单一"); MenuItem menuItem2=menu.add(1001,101,2,"用户菜单"); menuItem2.setTitle("菜单二"); MenuItem menuItem3=menu.add(1001,102,3,"客户菜单"); menuItem3.setTitle("菜单三"); menuItem3.setShortcut('c', 'c');//给指定的菜单设置快捷键 return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case 100://跳转到另一个activity,也可以传递一些参数 Intent intent=new Intent(MainActivity.this,NextActivity.class); item.setIntent(intent); Toast.makeText(MainActivity.this,"菜单一", 1).show(); break; case 101: Toast.makeText(MainActivity.this,"菜单二", 1).show(); break; case 102: Toast.makeText(MainActivity.this,"菜单三", 1).show(); break; } return super.onOptionsItemSelected(item); } }NextActivity.java文件:
public class NextActivity extends Activity { public NextActivity() { // TODO Auto-generated constructor stub } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.next); } }