【安卓6】高级控件——菜单(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 }