Android 资源详解(二) 菜单资源

    菜单资源也是一个XML文件,定义于res/menu/main.xml目录,用R.menu.main引用


    典型的菜单资源文件结构是:<menu>根原素,在其中嵌套<item>和<group>子元素,<item>中也可以嵌套<menu>元素。

    <menu>根元素中没有属性,它包含<item>和<group>元素

    <group>表示一个菜单组,相同的属性可以在菜单组中设置

    group常见属性如下:

         id: 唯一标示该菜单组的引用 id 。

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

         orderInCategory: 一个分类排序整数。

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

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

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

    <item>表示菜单项,包含在<menu>或<group>   中的有效属性。 

    <item>元素的属性说明如下:

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

         menuCategory: 菜单分类。

         or由rlnCategory :分类排序。

         title: 菜单标题字符串。

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

         icon: 菜单的图标。

         alphabeticShortcut: 字符快捷键。

         numericShortcut: 数字快捷键。

         checkable: 是否可选。

         checked: 是否已经被选。

         visible: 是否可见。

         enabled: 是否可用。


                        菜单资源的使用

    在menu目录中打开相应的.xml文件,添加以下代码

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.new1.MainActivity" >
    <item android:title="file">   
        <menu>
            <group android:id="@+id/file_group"
                android:checkableBehavior="none">
                <item android:id="@+id/newfile"
                    android:title="new"
                    android:alphabeticShortcut="n">    <!-- 添加快捷键-->
                </item>                
                <item android:id="@+id/openfile"
                    android:title="open"
                    android:alphabeticShortcut="o">
                </item>               
                <item android:id="@+id/closefile"
                    android:title="close"
                    android:alphabeticShortcut="c">
                </item>              
            </group>
        </menu>       
    </item>
    
    <item android:title="edit"
        android:icon="@drawable/pwordpress">   <!--设置图标 -->
        <menu>
            <group android:id="@+id/edit_group"
                android:checkableBehavior="single">
                <item android:id="@+id/cut"
                    android:title="cut"
                    android:alphabeticShortcut="t">
                </item>                
                <item android:id="@+id/copy"
                    android:title="copy"
                    android:alphabeticShortcut="p">
                </item>               
                <item android:id="@+id/paste"
                    android:title="paste"
                    android:alphabeticShortcut="a">
                </item>              
            </group>
        </menu>       
    </item>
    
    <item android:title="about"
        android:icon="@drawable/pyahoo">   
        <menu>
            <group android:id="@+id/about_group">
                <item android:id="@+id/help"
                    android:title="help">
                </item>                
                <item android:id="@+id/exit"
                    android:title="exit">
                </item>                           
            </group>
        </menu>       
    </item>
</menu>


在.java中引用,在.java中实现函数public boolean onCreatOptionsMenu(Menu)函数显示菜单

public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

在.java中重写public boolean onOptionsItemSelected(MenuItem item)函数相应菜单事件

public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.copy) {
return true;
}
return super.onOptionsItemSelected(item);
}


本文出自 “无用大叔” 博客,请务必保留此出处http://aslonely.blog.51cto.com/6552465/1614840

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。