`
007007jing
  • 浏览: 42747 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android2.3 api demo 学习系列(20)--App/Menu

阅读更多

现在来学习下menu的相关知识:

1、只有文字的菜单配置:

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/jump"
        android:title="@string/app_menu_onlytitle_menu1" />

    <item android:id="@+id/dive"
        android:title="@string/app_menu_onlytitle_menu2" />
</menu>

 

 2、包含文字和图片的菜单配置

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/happy"
        android:title="Happy"
        android:icon="@drawable/menu_icon1" />
    <item android:id="@+id/neutral"
        android:title="Neutral"
        android:icon="@drawable/menu_icon2" />
    <item android:id="@+id/sad"
        android:title="Sad"
        android:icon="@drawable/menu_icon3" />
</menu>

 

 3、包含子菜单项

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:title="Normal 1"/>
    <item
        android:id="@+id/submenu"
        android:title="Emotions">
        <menu>
            <item
                android:id="@+id/happy"
                android:icon="@drawable/menu_icon1"
                android:title="Happy"/>
            <item
                android:id="@+id/neutral"
                android:icon="@drawable/menu_icon2"
                android:title="Neutral"/>
            <item
                android:id="@+id/sad"
                android:icon="@drawable/menu_icon3"
                android:title="Sad"/>
        </menu>
    </item>
    <item android:title="Normal 2"/>

</menu>

 

 4、分组菜单项

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/browser_visibility"
        android:title="@string/app_menu_title1"/>

    <group android:id="@+id/browser" >
        <item
            android:id="@+id/refresh"
            android:title="@string/app_menu_title2"/>
        <item
            android:id="@+id/bookmark"
            android:title="@string/app_menu_title3"/>
    </group>

    <item
        android:id="@+id/email_visibility"
        android:title="@string/app_menu_title4"/>

    <group android:id="@+id/email" >
        <item
            android:id="@+id/reply"
            android:title="@string/app_menu_title5"/>
        <item
            android:id="@+id/forward"
            android:title="@string/app_menu_title6"/>
    </group>

</menu>

 

 5、可单选、多选的菜单先

 

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Checkable items appear only in submenus or context menus. -->

    <!-- Carefully look at the attribute name checkableBehavior on groups, but
         the attribute name checkable on items. The checkableBehavior encompasses
         the number of items that will be checkable within that group. -->

    <item android:title="None">
        <menu>
            <!-- The none checkableBehavior is default, but we explicitly show it here. -->
            <group android:id="@+id/noncheckable_group"
                    android:checkableBehavior="none">
                <!-- Notice how these items inherit from the group. -->
                <item android:id="@+id/noncheckable_item_1"
                        android:title="@string/app_menu_title1" />
                <item android:id="@+id/noncheckable_item_2"
                        android:title="@string/app_menu_title2" />
                <item android:id="@+id/noncheckable_item_3"
                        android:title="@string/app_menu_title3" />
            </group>
        </menu>
    </item>

    <item android:title="All">
        <menu>
            <group android:id="@+id/checkable_group"
                    android:checkableBehavior="all">
                <!-- Notice how these items inherit from the group. -->
                <item android:id="@+id/checkable_item_1"
                        android:title="@string/app_menu_title1" />
                <item android:id="@+id/checkable_item_2"
                        android:title="@string/app_menu_title2"
                        android:checked="true" />
                <item android:id="@+id/checkable_item_3"
                        android:title="@string/app_menu_title3"
                        android:checked="true" />
            </group>
        </menu>
    </item>

    <item android:title="Single">
        <menu>
            <group android:id="@+id/exclusive_checkable_group"
                    android:checkableBehavior="single">
                <!-- Notice how these items inherit from the group. -->
                <item android:id="@+id/exclusive_checkable_item_1"
                        android:title="@string/app_menu_title1" />
                <item android:id="@+id/exclusive_checkable_item_2"
                        android:title="@string/app_menu_title2" />
                <item android:id="@+id/exclusive_checkable_item_3"
                        android:title="@string/app_menu_title3"
                        android:checked="true" />
            </group>
        </menu>
    </item>

    <item android:title="All without group">
        <menu>
            <!-- Notice how these items have each set. -->
            <item android:id="@+id/nongroup_checkable_item_1"
                    android:title="@string/app_menu_title1"
                    android:checkable="true" />
            <item android:id="@+id/nongroup_checkable_item_2"
                    android:title="@string/app_menu_title2"
                    android:checkable="true"
                    android:checked="true" />
            <item android:id="@+id/nongroup_checkable_item_3"
                    android:title="@string/app_menu_title3"
                    android:checkable="true"
                    android:checked="true" />
        </menu>
    </item>

</menu>

 

 6、菜单项排序

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/fourth_item"
        android:orderInCategory="3"
        android:title="Fourth" />

    <item android:id="@+id/third_item"
        android:orderInCategory="2"
        android:title="Third" />

    <item android:id="@+id/second_item"
        android:orderInCategory="1"
        android:title="Second" />

    <item android:id="@+id/first_item"
        android:orderInCategory="0"
        android:title="First" />
</menu>

 

 7、菜单项排序2,和上一个不通的是分组多了一个 android:menuCategory="secondary"排序

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:id="@+id/most_used_items">
    
        <item android:id="@+id/last_most_item"
            android:orderInCategory="10"
            android:title="@string/app_menu_title1" />
    
        <item android:id="@+id/middle_most_item"
            android:orderInCategory="7"
            android:title="@string/app_menu_title2"/>
            
        <item android:id="@+id/first_most_item"
            android:orderInCategory="4"
            android:title="@string/app_menu_title3"/>
    
    </group>
    
    <!-- This group uses the secondary category, which is used for less oftenly used items.
         Notice these items will show up after the above items.
         (Furthermore, notice how the orders in each category are independent from the other
         category.) -->
    <group android:id="@+id/least_used_items"
        android:menuCategory="secondary">
        
        <item android:id="@+id/last_least_item"
            android:orderInCategory="3"
            android:title="@string/app_menu_title4" />
    
        <item android:id="@+id/middle_least_item"
            android:orderInCategory="2"
            android:title="@string/app_menu_title5" />
    
        <item android:id="@+id/first_least_item"
            android:orderInCategory="0"
            android:title="@string/app_menu_title6" />
    
    </group>

</menu>

 

 8、菜单项的可见属性

 

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/visible_item"
        android:title="Visible"
        android:alphabeticShortcut="a" />

    <item android:id="@+id/hidden_item"
        android:title="Hidden"
        android:visible="false"
        android:alphabeticShortcut="b" />

    <group android:id="@+id/hidden_group"
        android:visible="false">
    
        <item android:id="@+id/hidden_by_group"
            android:title="Hidden by group"
            android:alphabeticShortcut="c" />
    
    </group>

</menu>

 

 9、菜单项的enable属性

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/enabled_item"
        android:title="Enabled"
        android:icon="@drawable/menu_icon1" />

    <item android:id="@+id/disabled_item"
        android:title="Disabled"
        android:enabled="false"
        android:icon="@drawable/menu_icon2" />

    <item android:id="@+id/enabled_item_2"
        android:title="Enabled"
        android:icon="@drawable/menu_icon1" />

    <item android:id="@+id/disabled_item_2"
        android:title="Disabled"
        android:enabled="false"
        android:icon="@drawable/menu_icon2" />

    <item android:id="@+id/enabled_item_3"
        android:title="Enabled"
        android:icon="@drawable/menu_icon3" />

    <item android:id="@+id/disabled_item_3"
        android:title="Disabled"
        android:enabled="false"
        android:icon="@drawable/menu_icon4" />

    <item android:id="@+id/enabled_item_4"
        android:title="Enabled"
        android:icon="@drawable/menu_icon5" />

    <item android:id="@+id/disabled_item_4"
        android:title="Disabled"
        android:enabled="false"
        android:icon="@drawable/menu_icon6" />

</menu>

 

 10、菜单项的快捷键设置

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/invisible_item"
        android:alphabeticShortcut="i"
        android:title="Invisible item"
        android:visible="false"/>
    <item
        android:id="@+id/a_item"
        android:alphabeticShortcut="a"
        android:title="Alvin"/>
    <item
        android:id="@+id/b_item"
        android:alphabeticShortcut="b"
        android:title="Bart"/>
    <item
        android:id="@+id/c_item"
        android:alphabeticShortcut="c"
        android:title="Chris"/>
    <item
        android:id="@+id/d_item"
        android:alphabeticShortcut="d"
        android:title="David"/>
    <item
        android:id="@+id/e_item"
        android:alphabeticShortcut="e"
        android:title="Eric"/>
    <item
        android:id="@+id/f_item"
        android:alphabeticShortcut="f"
        android:title="Frank"/>
    <item
        android:id="@+id/g_item"
        android:alphabeticShortcut="g"
        android:title="Gary"/>
    <item
        android:id="@+id/h_item"
        android:alphabeticShortcut="h"
        android:title="Henry"/>
    <item
        android:id="@+id/excl_item"
        android:alphabeticShortcut="!"
        android:title="Exclamation"/>

</menu>

 

 菜单项的配置基本上都在xml完成,在代码加载后显示即可

 

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Hold on to this
        mMenu = menu;
        // Inflate the currently selected menu XML resource.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(menuRes, menu);
        return true;
    }

 

 菜单项的实现基本上很简单,另外还有一种菜单Context Menu,请参考sdk,后面到相关demo中再学习。

over。

分享到:
评论

相关推荐

    Android代码-dlib-android-app

    dlib-android-app See http://dlib.net for the main project documentation. See dlib-android for JNI lib. Refer to dlib-android/jni/jnilib_ex Grap the source $ git clone ...

    安卓串口demo(android-serialport-api-android-serialport-api

    标题中的"安卓串口demo(android-serialport-api-android-serialport-api)"指的是一个用于Android系统的串口通信示例程序,它基于开源项目“android-serialport-api”。 这个开源项目是为了解决Android设备上串口...

    Android代码-cordova-plugin-app-update

    cordova-plugin-app-update App updater for Cordova/PhoneGap Demo Try it yourself: Just clone and install this demo. cordova-plugin-app-update-DEMO :tada: 如果喜欢它,请别忘了给我一颗鼓励的星 Support ...

    React-Native官方demo(对应 最新v0.55.0版本20180620编译)

    2018年6月20最新编译React-Native官方demo,可直接运行版本。对应执行如下命令: 1.D:\reactnative\RNTester&gt; react-native bundle --platform android --dev false --entry-file js/RNTesterApp.android.js --bundle...

    android-serialport-api 串口demo.zip

    这是很据android-serialport-api 自己简化的一个demo ,可以使用。原来android-serial-api的程序很多人反映都不能使用,所以自己写了这个,只有一个activity,可以做为你的学习参考。

    android demo api

    根据提供的标题、描述以及部分内容,可以总结出一系列与Android API Demo相关的知识点,这些知识点主要集中在Android应用程序的基础构建、用户界面设计、系统服务交互等方面。下面将详细解释这些知识点。 ### ...

    android-serialport-api串口通信精简demo

    关于利用android-serialport-api实现在安卓设备上进行串口通信,附精简版demo,亲测可用。符个人博文说明:http://blog.csdn.net/ckw474404603/article/details/37811499

    WebRTCDemo-master_android-studio

    综上所述,“WebRTCDemo-master_android-studio”项目旨在提供一个Android上的WebRTC P2P通信示例,涵盖了从WebRTC库的集成到实际音视频通话的实现,以及Android Studio的编译流程,对于学习和理解WebRTC技术在移动...

    upload-download

    准备工作$ npm install启动服务找到对应的实例代码,然后启动 所在目录的 server/app.js如node ./src/upfiles-demo/demo-a1-form/server/app.jsnode ./src/upfiles-demo/demo-a2-formdata/server/app.jsnode ./src/...

    基于mAppwidget实现的手绘地图demo

    可使用不同的图片作为地图...//下载demo http://mapp.android-libraries.com/download //学习地图 http://www.67tgb.com/?p=610 图片切割 http://www.67tgb.com/?p=597 http://mapp.android-libraries.com/slicingtool/

    android-demo-app:PyTorch android在应用程序中的用法示例

    是一个简单的图像分类应用程序,演示了如何使用PyTorch Android API。 PyTorch演示应用 是一款功能完善的应用程序,其中包含两个展示柜。 相机应用程序运行量化模型以实时对图像进行分类。 还有一个基于文本的应用...

    Android SipDemo( 网络电话的例子源码,android 2.3以上才能用)

    Android SipDemo是一个示例应用,它展示了如何在Android平台上实现网络电话功能,特别是针对Android 2.3(Gingerbread)及以上版本。这个项目基于Android的SIP(Session Initiation Protocol)API,这是一种用于...

    小程序项目源码之学习Demowechat-app-xiaoyima-master小程序.zip

    小程序项目源码之【学习Demo】wechat-app-xiaoyima-master小程序小程序项目源码之【学习Demo】wechat-app-xiaoyima-master小程序小程序项目源码之【学习Demo】wechat-app-xiaoyima-master小程序小程序项目源码之...

    android使用NDK编译curl库源码

    APP_PLATFORM := android-19 # 指定最低API级别 ``` 5. **执行NDK-BUILD**:在命令行中导航到含有`Android.mk`的目录,运行`ndk-build`命令。这将编译源码并生成.so库。 6. **集成到Android项目**:将生成的.so...

    安卓android-serialport-api 串口demo源代码.zip

    安卓android-serialport-api 串口demo源代码 public class SerialPort { private static final String TAG = "SerialPort"; /* * Do not remove or rename the field mFd: it is used by native method close...

    Android语音识别示例

    由于最近在做智能家居方向的产品,需要在App上对机器人实现一个简单的语音控制,于是开始寻找相应的解决方案,由于某种原因,google自己的语音识别API并不能在国内发挥作用,所以我们选择国内的科大讯飞语音识别服务...

    微信小程序-微信小程序(应用号)开发工具Demo教程

    学习教程 官方资源 官方文档 开发工具 下载资源 开发工具【Windows/Mac】 Github:https://github.com/venshine/wechat-lightapp/tree/master/ide 百度:https://pan.baidu.com/s/1o7BVBQU (密码: e5m1) ...

    android-simple-test-demo-master_deermlf_DEMO_simpletest_uponomb_

    【标题】"android-simple-test-demo-master_deermlf_DEMO_simpletest_uponomb_" 提供的是一个基于Android的简单测试示例项目,由用户deermlf创建并标记为DEMO,专注于simpletest功能,可能用于Android教育目的。...

    Android代码-安卓串口打开、接收与发送

    Android串口操作,简化android-serialport-api的demo(附源码) 我把文中的源码导入 android studio 源码来自谷歌:android-serialport-api 涉及到的 jni 开发可以参考:【Android 应用开发】Android 开发 之 JNI...

    Face-api.js静态页面版Demo

    JavaScript人脸识别库Face-api.js的示例,无需安装nodejs,iis本地直接看效果。注意调用摄像头不能用IP访问,只能localhost,远程预览需要HTTPS;iis无扩展名文件若出现404,需在mime类型中添加扩展名【.】类型...

Global site tag (gtag.js) - Google Analytics