Android攻城狮OptionsMenu

Android的菜单一共有三种:
OptionsMenu 选择菜单
ContextMenu 上下文菜单
SubMenu 子菜单

创建选项菜单:
在 Activity 里面重写 onCreateOptionMenu(),在里面设置菜单项。设置菜单项可以用代码动态地添加:menuadd(); 还可以通过 xml(在里面配置菜单项) 来配置,然后通过MenuInflater.inflate()设置。
然后设置菜单的点击事件,重写 onOptionsItemSelected()。
如图,是menu文件夹下的main.xml的代码。
--------------
重写onCreateOptionMenu():
public boolean onCreateOptionsMenu(Menu menu) {
   getMenuInflater().inflate(R.menu.main, menu);
   return true;
}
--------------
摘自评论区
从Android3.0开始,Android并不要求手机设备上必须提供Menu菜单。与桌面菜单不同,Android菜单默认是看不到的,这样情况下,Android推荐使用ActionBar来代替菜单。


 1 public class MainActivity extends ActionBarActivity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.fragment_main);
 7 
 8     }
 9 
10     @Override
11     public boolean onCreateOptionsMenu(Menu menu) {
12 
13         // Inflate the menu; this adds items to the action bar if it is present.
14         // xml加载:
15         // getMenuInflater().inflate(R.menu.main, menu);
16         // 动态设置菜单项
17         MenuItem item = menu.add(1, 100, 1, "菜单一");
18         item.setTitle("aaa");
19         item.setIcon(R.drawable.ic_launcher);// api>=11它不显示图标
20         menu.add(1, 101, 1, "菜单二");
21         menu.add(1, 102, 1, "菜单三");
22 
23         return true;
24     }
25 
26     // 创建点击事件
27     @Override
28     public boolean onOptionsItemSelected(MenuItem item) {
29         // TODO Auto-generated method stub
30         switch (item.getItemId()) {
31         // xml方式:
32         // case R.id.action_menu_item1:
33         // Toast.makeText(MainActivity.this, "点击菜单一", 0).show();
34         // break;
35         //
36         // case R.id.action_menu_item2:
37         // Toast.makeText(MainActivity.this, "点击菜单二", 0).show();
38         // break;
39         // 动态设置菜单项:
40         case 100:
41             Intent intent = new Intent(MainActivity.this, SencondActivity.class);
42             item.setIntent(intent);
43             Toast.makeText(MainActivity.this, "点击菜单一", 0).show();
44             break;
45         case 101:
46             Toast.makeText(MainActivity.this, "点击菜单二", 0).show();
47             break;
48         case 102:
49             Toast.makeText(MainActivity.this, "点击菜单三", 0).show();
50             break;
51 
52         }
53         return super.onOptionsItemSelected(item);
54     }
55 
56 }
原文地址:https://www.cnblogs.com/my334420/p/6785662.html