安卓开发入门7-Menu
Menu

OptionMenu

- 菜单也是一种资源,要放到res下,这里创建了一个menu目录来存放

- 之后就可以在目录中新建菜单的配置文件了

- Item是菜单项,menu是菜单,可以认为item必须在menu内部,而item也可以包含menu
- 这样就能构建出多级菜单,用Android Studio的可视化拖动构建也挺方便的。
1 |
|

- 在代码中加载菜单资源
1 |
|
- 一些常用属性
1 |
|
always 一直可见
never 不显示
ifRoom 有空间就显示
icon 图标
- 获取点击事件的方法都差不多,重写对应方法,获取ID,做些事情
1 |
|
- finish()可以结束应用
ContextMenu

如果说optionMenu的所有者是Activity,那ContextMenu的所有者就是普通的View
contexMenu 需要注册到一个View上,创建和OptionMenu是完全一样的
1 |
|
注册
1 |
|
操作
1 |
|
上下文操作模式
- 首先先创建上下文操作模式
- 在create方法中设置menu
1 |
|
- 设置View的长按事件为启动上下文操作模式
1 |
|

效果就是长按之后出现在顶部
PopupMenu

- inflater填充需要一个布局和一个menu对象,而popupMenu需要绑定一个view
1 |
|
Menu创建方式
- 可以直接在Java源文件里写Menu布局
But why?
- 喜欢自虐的可以试试
注意
