回答第一个问题:什么是选项菜单?答:选项菜单就是可以显示在操作栏上的菜单。

  菜单的视图需要建立在res/menu下。

  

  其中,showAsAction属性用于指定菜单选项是显示在操作栏还是隐藏到溢出菜单(overflow menu)。ifRoom|withText表示只要空间够,就显示图标与文字在操作栏上。always(不推荐使用)和never也是属性值。

  选项菜单除了视图之外,有两个回调函数非常重要。

  public void onCreateOptionsMenu(Menu menu,MenuInflater inflater)

  public boolean onOptionsItemSelected(MenuItem item)

  这两个方法在activity和fragment里都有。

  先说onCreateOptionsMenu方法,如果选项菜单是在fragment中,整个流程如下:

  FragmentManager--(判断fragment的hasOptionsMenu值)-->true--(调用fragment的onCreateOptionsMenu())-->OptionsMenu

  

  

  再说onOptionsMenuSelected(MenuItem item)方法,该方法传入的参数就是被选中的item,还记得本文开头的选项菜单视图中定义的item么,

对,就是那里定义的item。那么如何判断用户选择的是哪个item呢?通过item的getItemId()方法获取item的id来和视图中我们的item中的id对比。

  太阳照常升起,人生寂寞如雪。

  

  

最新文章

  1. sql查询慢优化
  2. 2016huasacm暑假集训训练五 E - What Is Your Grade?
  3. shell学习笔记1
  4. Android之Inflate()方法用途
  5. lambda显式声明返回值
  6. IOS pop使用代理传值
  7. python手记(36)
  8. Swift - 2 (?和!、结构体、类、协议、扩展、闭包)
  9. go语言初体验
  10. Python 显示LinkedIn用户作业
  11. 你可能把A/B测试做错了
  12. [笔记]RankSVM 和 IR SVM
  13. HighCharts基本折线图
  14. Dijkstra算法 c语言实现
  15. 斯坦福大学公开课机器学习:machine learning system design | error metrics for skewed classes(偏斜类问题的定义以及针对偏斜类问题的评估度量值:查准率(precision)和召回率(recall))
  16. axure—日期函数
  17. Scala学习之路 (九)Scala的上界和下届
  18. Python3 - DBUtils 和 pymysql 整合
  19. 测试开发之Django——No2.Django的安装以及项目创建
  20. C语言中的 (void*)0 与 (void)0

热门文章

  1. The partial sum problem
  2. UVA11538Chess Queen(组合数学推公式)
  3. 逆波兰表达式 java
  4. MySQL新建用户,授权,删除用户,修改密码总结
  5. Python自动化运维之11、面向对象基础
  6. PreparedStatement可以有效地防止sql被注入
  7. EDIT编辑框
  8. 发布项目到 Linux 上运行 Core 项目
  9. SQL通过xml插入批量数据
  10. Entity Framework with MySQL 学习笔记一(乐观并发)