Android中的Menu

我觉得menu是如今android开发中肯定会用到的技术,它可以让我们实现一个功能,而且还不用牺牲本来就不多的屏幕空间。例如,你在一个ListView上长按会弹出一个删除或者编辑的小窗口(ContextMenu)。一般屏幕右上角有三个小点时候当你点击它,屏幕底部会弹出一个OptionsMenu等。

所以在这重点写一下关于Menu的详解。尽量写的详细,以便在以后的工作学习中方便回顾查找。

先让我们看一下Menu接口的继承关系图。


Menu继承关系图
  • 首先是分类

一般Menu被分为三类

  1. OptionsMenu(选项菜单)
  • ContextMenu(上下文菜单)
  • SubMenu(子菜单)
首先是 OptionsMenu(选项菜单)
  • OptionsMenu的各种方法:
  1. public boolean onCreateOptionsMenu(Menu menu)
    用于初始化菜单,其中Menu参数就是即将要显示的Menu实例。(只会在第一次初始化菜单时候调用)
  2. public boolean onPrepareOptionsMenu(Menu menu)
    在onCreateOptionsMenu执行后,菜单被显示前调用;如果菜单已经被创建,则在菜单显示前被调用。
    同样,返回true则显示该menu,false则不显示。
    (可以通过此方法动态的改变菜单的状态,比如加载不同的菜单等)
  3. public void onOptionsMenuClosed(Menu menu)
    每次菜单被关闭时调用(菜单被关闭正常有三种情况:menu按钮再次被点击,back按钮被点击,用户选择了某一个菜单项)
  4. public boolean onOptionsItemSelected(MenuItem item)
    菜单项被点击时调用,也就是菜单项的监听方法。

通过这几个方法可以得知,对于Activity,同一时间只能显示和监听一个Menu对象。

你可能感兴趣的:(Android中的Menu)