一、使用XML定义菜单
在 res 目录上右击选择 Android resourse File , 打开对话框,创建Resource type 为menu 的XML文件。
菜单项的图标可通过Image Asset 工具进行创建,步骤:右击drawable 目录,选择New->Image Asset,下拉选择Actiong Bar and Tab Icons,编辑图标名称,单机Clipart Art 单选按钮,单机Next和Finish完成创建。
二、选项菜单
当Activity在前台运行时,如果用户按下手机上的Menu键,此时就会在屏幕低端弹出相应的选项菜单。但这个功能需要开发人员编程来实现的,如果在开发应用程序时没有实现该功能,那么程序运行时按下手机的meun键是不会起作用的。
对于携带图标的选项菜单,每次最多只能显示6个,当菜单选项多于6个时,将只显示前5个和一个扩展菜单选项,点击扩展菜单选项将会弹出其余的菜单项。扩展菜单项中将不会显示图标,但是可以显示单选按钮和复选框。
三、上下文菜单
每个控件都有一个上下文菜单,但并不是每一个控件都需要上下文菜单啊。我们怎么知道这个控件要不要上下文菜单。所以这就是注册的功能,为需要有上下文菜单的控件注册一下。注册的代码如下:
-
TextView tvHelloWorld=(TextView)findViewById(R.id.helloword);
-
registerForContextMenu(tvHelloWorld);//注册上下文菜
在注册上下文菜单以后,所以上按的产生上下文菜单的事件都会分派给onCreateContextMenu()函数来进行处理;先看一下整体产生上下文菜单的代码
四、弹出菜单
PopupMenu,弹出菜单,一个模态形式展示的弹出风格的菜单,绑在在某个View上,一般出现在被绑定的View的下方(如果下方有空间)。
注意:弹出菜单是在API 11和更高版本上才有效的。
核心步骤:
(1)通过PopupMenu的构造函数实例化一个PopupMenu对象,需要传递一个当前上下文对象以及绑定的View。
(2)调用PopupMenu.setOnMenuItemClickListener()设置一个PopupMenu选项的选中事件。
(3)使用MenuInflater.inflate()方法加载一个XML文件到PopupMenu.getMenu()中。
(4)在需要的时候调用PopupMenu.show()方法显示。