`
abc20899
  • 浏览: 908868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 中自定义 Menu 资源

阅读更多
今晚在做应用程序时,需要用到 Menu。左思右想还是决定编写 menu.xml 的方式来完成,这样做的好处:1、方便管理(这也正是android应用xml的原因之一);2、便于修改。在 Android 中任何视图组件的创建方式都有两种:1、在XML文件中创建;2、在代码中创建。Menu 也不例外,我们既可以在资源文件中声明,也可以在代码中创建。

Android 中的菜单分为:1、选项菜单 ,2、上下文菜单和子菜单,都可以在XML文件中声明定义,在代码中通过MenuInflater 类来使用。本节主要讲 Menu 在 XML 中的定义以及在程序中的应用。


一、 Menu 资源文件的定义

Menu 资源文件也是一个XML文件,该文件存放于工程的res\menu\menu.xml 目录下。通过R.menu.menu的方式来引用。

Menu 资源文件的结构:

  1、<menu>根元素,在<menu>根元素里面会嵌套<item>和<group>子元素,<menu>根元素没有属性。

  2、<item>元素中也可嵌套<menu>形成子菜单。

          3、<group>表示一个菜单组,相同的菜单组可以一起设置其属性,例如visible、enabled和checkable等。<group>元素的属性说明如下:
—   id:唯一标示该菜单组的引用id。

— menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary和alternative。

—     orderInCategory:一个分类排序整数。

—     checkableBehavior:选择行为,单选、多选还是其他。有效值为none、all和single。

— visible:是否可见,true或者false。

— enabled:是否可用,true或者false。




<item>表示菜单项,包含在<menu>或<group>中的有效属性。<item>元素的属性说明如下。

—     id:唯一标示菜单的ID引用。

—     menuCategory:菜单分类。

—     orderInCategory:分类排序。

—     title:菜单标题字符串。

—     titleCondensed:浓缩标题,适合标题太长的时候使用。

—     icon:菜单的图标。

—     alphabeticShortcut:字符快捷键。

— numericShortcut:数字快捷键。

— checkable:是否可选。

— checked:是否已经被选。

—    visible:是否可见。

— enabled:是否可用。

二、Menu 在程序中的应用

       在定义了 Menu  后,接下来就是在程序中去应用它,方法如下:
      @Override
      public boolean onCreateOptionsMenu(Menu menu){
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.menu, menu);
         return super.onCreateOptionsMenu(menu);
      }

下面来个实例:
1、定义Menu 文件(res\menu\blacklist.xml):
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:title="File" android:icon="@drawable/icon">
        <menu>
            <group android:id="@+id/noncheckable_group"
                android:checkableBehavior="none">
                <item android:id="@+id/newFile" android:title="New"
                    android:alphabeticShortcut="n" />
                <item android:id="@+id/openFile" android:title="Open"
                    android:alphabeticShortcut="o" />
                <item android:id="@+id/saveFile" android:title="Save"
                    android:alphabeticShortcut="s" />
            </group>
        </menu>
    </item>

    <item android:title="Edit" android:icon="@drawable/icon">
        <menu>
            <group android:id="@+id/edit_group" android:checkableBehavior="single">
                <item android:id="@+id/cut" android:title="Cut" android:checked="true"/>
                <item android:id="@+id/copy" android:title="Copy" />
                <item android:id="@+id/past" android:title="Past" />
            </group>
        </menu>
    </item>

    <item android:title="Help" android:icon="@drawable/icon">
        <menu>
            <group android:id="@+id/help_group">
                <item android:id="@+id/about" android:title="About" />
                <item android:id="@+id/exit" android:title="Exit" />
            </group>
        </menu>
    </item>
</menu>   

2、程序中应用:
  @Override
  public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.blacklist, menu);
    return super.onCreateOptionsMenu(menu);
  }
分享到:
评论

相关推荐

    android 自定义菜单 使用PopupWindow实现菜单的各种效果

    此为示例代码,详细讲解请参考博文: http://blog.csdn.net/tangron/article/details/20907243 如对资源内容有疑问,请到博客中留言。 欢迎大家评阅,谢谢

    Android编程入门很简单.(清华出版.王勇).part1

    1.3Android中的个人英雄主义 1.3.1第一届挑战赛冠军介绍 1.3.2第二届挑战赛冠军介绍 1.3.3Androidmarket 1.4Android平台 1.4.1Android体系结构 1.4.2熟悉的开发工具 1.4.3合理的学习曲线 1.5小结 第2章搭建你的开发...

    android开发资料大全

    Android自定义View研究-- 一个小Demo Android调用相册拍照实现系统控件缩放切割图片 Android SQLite的实例汇总大全 两分钟彻底让你明白Android Activity生命周期(图文)! Android 图形系统剖析 Android 立体效果图片...

    自定义控件侧滑面板

    1准备图片2建立layout_main_content.xml主面板3建立资源布selector_menu_bt_bg.xml用于使用共同属性4在style.xml中添加布局中的共同属性 5建立layout_left_menu.xml侧滑面板布局6自定义SlideMenu类实现自定义布局的...

    Android入门到精通源代码.

    1.4 Android网上资源 第2章 搭建Android开发环境 2.1 Android开发环境要求 2.2 JDK的安装和配置 2.2.1 安装JDK 2.2.2 配置JDK 2.3 Android SDK的下载和安装 2.3.1 下载Android SDK 2.3.2 安装Android SDK 2.3.3 创建...

    Android编程入门很简单.(清华出版.王勇).part2

    1.3Android中的个人英雄主义 1.3.1第一届挑战赛冠军介绍 1.3.2第二届挑战赛冠军介绍 1.3.3Androidmarket 1.4Android平台 1.4.1Android体系结构 1.4.2熟悉的开发工具 1.4.3合理的学习曲线 1.5小结 第2章搭建你的开发...

    疯狂Android讲义源码

     6.7 使用菜单(Menu)资源 239  6.7.1 定义菜单资源 239  6.7.2 使用菜单资源 240  6.8 样式(Style)和主题(Theme)  资源 243  6.8.1 样式资源 243  6.8.2 主题资源 245  6.9 属性(Attribute)资源 247...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android中anim文件特效 |--app信息menifest获取(如版本号) |--AsyncQueryHandler之异步查询Cursor处理 |--AutoCompleteTextView自动提示的用法 |--BitMap、Drawable、inputStream及byte[] 互转 |--...

    Android的简单记事本实现

    这个例子主要涉及到了以下一些知识点:ListView,自定义Adapter、SQLiteDatabase,并且对menu做了简单处理。

    Android插件

    1.GsonFormat(GsonFormat) 快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。...可用于将项目中的 string 资源自动翻译为其他语言的 Android Studio/IntelliJ IDEA 插件

    Android使用xml文件资源定义菜单实现方法示例

    主要介绍了Android使用xml文件资源定义菜单实现方法,结合实例形式分析了Android资源文件管理及xml配置自定义菜单相关操作技巧,需要的朋友可以参考下

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与...

    疯狂Android讲义.part2

    6.7 使用菜单(Menu)资源 239 6.7.1 定义菜单资源 239 6.7.2 使用菜单资源 240 6.8 样式(Style)和主题(Theme) 资源 243 6.8.1 样式资源 243 6.8.2 主题资源 245 6.9 属性(Attribute)资源 247 6.10 使用原始...

    疯狂Android讲义.part1

    6.7 使用菜单(Menu)资源 239 6.7.1 定义菜单资源 239 6.7.2 使用菜单资源 240 6.8 样式(Style)和主题(Theme) 资源 243 6.8.1 样式资源 243 6.8.2 主题资源 245 6.9 属性(Attribute)资源 247 6.10 使用原始...

    Android基础知识详解

    Android的系统架构 6 一、应用程序 6 二、应用程序框架 6 三、Android Runtime 7 四、系统库 7 五、Linux 内核 8 Webkit浏览器引擎简介 9 ...Android支持的各种资源 123 窗口小部件(App Widget) 124 NDK编程 125

Global site tag (gtag.js) - Google Analytics