菜单的显示方法有以下几种:使用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);
}
}