菜单(menu)
菜单
menu ——菜单默认隐藏
——实现菜单的接口:
- Menu,父接口,用于创建主菜单
- SubMenu继承Menu接口,用于创建子菜单
- ContextMenu接口继承Menu接口,用于创建上下文菜单
- MenuItem接口用户创建菜单项
1.选项菜单
基本方法:
-
- public boolean onCreateOptionsMenu(Menu menu)
在此方法之中设置多个菜单项(MenuItem)
-
-
- 返回值:返回true表示显示菜单,反之则不显示
- public boolean onOptionsItemSelected(MenuItem item)
-
在此方法之中判断菜单项的操作
-
- public void onOptionsMenuClosed(Menu menu)
当菜单关闭时触发此操作
-
- public boolean onPrepareOptionsMenu(Menu menu)
在菜单显示前触发此操作
-
-
- 返回值:返回true则继续调用OnCreateOptionsMenu(方法),反之则不再调用
-

- 在方法中定义菜单
- 在资源文件中定义菜单
1) 在res文件夹下创建menu文件夹
2) 在menu文件夹下创建options.xml
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/save"
android:title="保存信息">
</item>
<item android:id="@+id/delete"
android:title="删除信息">
</item>
<item android:id="@+id/help"
android:title="帮助">
<menu>
<item android:id="@+id/item01"
android:title="说明">
</item>
<item android:id="@+id/item02"
android:title="简介">
</item>
</menu>
</item>
</menu>
1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.main);
4 }
5 public boolean onCreateOptionsMenu(Menu menu) {
6 //1.在方法中定义菜单
7 //menu.add("增加");
8 //menu.add("删除");
9 //SubMenu sm=menu.addSubMenu("帮助");
10 //sm.add("简介");
11 //sm.add("说明");
12 //2.在资源文件中定义菜单
13 //创建菜单资源解析对象
14 MenuInflater mif = getMenuInflater();
15 //解析菜单资源
16 mif.inflate(R.menu.options, menu);
17 return super.onCreateOptionsMenu(menu);
18 }
19 //重写Activity类中的方法在该方法中编写菜单项被选中后的事件代码
20 public boolean onOptionsItemSelected(MenuItem item) {
21 switch (item.getItemId()) {
22 case R.id.save:
23 Toast.makeText(this, "选中保存", 500).show();
24 break;
25 case R.id.delete:
26 Toast.makeText(this, "选中删除", 300).show();
27 break;
28 }
29 return super.onOptionsItemSelected(item);
30 }
2.上下文菜单
基本方法:
-
- public void onCreateContextMenu(ContextMenu menu,
View v, ContextMenu. ContextMenuInfo menuInfo)
在此方法之中可以设置所需要的显示的所有菜单项
-
- public boolean onContextItemSelected(MenuItem item)
当某一个菜单项被选中时触发此操作
-
- public void onContextMenuClosed(Menu menu)
当菜单项关闭时触发此操作

<menu>
<item android:id="@+id/save"
android:title="保存信息"/>
<item android:id="@+id/delete"
android:title="删除信息"/>
<item android:id="@+id/help"
android:title="帮助"/>
</menu>
1 protected void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 setContentView(R.layout.main);
4 //长按文本框出现上下文菜单
5 TextView tv=(TextView) findViewById(R.id.TextView01);
6 registerForContextMenu(tv);
7 }
8 public void onCreateContextMenu(ContextMenu menu,
9 View v, ContextMenuInfo menuInfo) {
10 super.onCreateContextMenu(menu, v, menuInfo);
11 MenuInflater flater=getMenuInflater();
12 flater.inflate(R.menu.options,menu);
13 menu.setHeaderIcon(R.drawable.b);
14 menu.setHeaderTitle("信息操作");
15 }


浙公网安备 33010602011771号