如何在XML中定义菜单

 更新时间:2016年06月01日 16:19:28   作者:xirihanlin  
这篇文章主要为大家详细介绍了在XML中定义菜单的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

和Android UI layout一样,我们也可以在XML中定义应用程序的菜单。通过在菜单的onCreateOptionsMenu方法中膨胀菜单layout。这样做会使我们的程序代码简单多了,而且尽可能的将更多的界面设计部分放到XML,便于浏览。

1. 在工程的/res/文件夹下创建menu文件夹,用来保存你为应用程序定义的菜单XML文件。
在菜单XML layout中,有三个有效的元素:menu、group、item。item和group必须是menu的子元素,且item必须是group的子元素。另外的menu可以是item的子元素(为了创建子菜单)。下面的XML片段显示了菜单的层次定义: 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Play" android:id="@+id/media_play"
 android:icon="@android:drawable/ic_media_play"/>
<item android:title="Pause" android:id="@+id/media_pause"
 android:icon="@android:drawable/ic_media_pause"/>
<item android:title="File" android:id="@+id/file">
<menu>
<item android:title="Open..." android:id="@+id/file_open"/>
<item android:title="Save" android:id="@+id/file_save"/>
<item android:title="Save as" android:id="@+id/file_saveas"/>
<item android:title="Exit" android:id="@+id/file_exit"/>
</menu>
</item>
<item android:title="Edit" android:id="@+id/edit">
<menu>
<group>
<item android:title="Copy" android:id="@+id/edit_copy"/>
<item android:title="Paste" android:id="@+id/edit_paste"/>
<item android:title="Cut" android:id="@+id/edit_cut"/>
<item android:title="Delete" android:id="@+id/edit_delete"/>
</group>
</menu>
</item>
</menu>

2. 重写Activity的onCreateOptionsMenu方法,通过MenuInflater.inflate方法来膨胀菜单XML。
 MenuInflater inflater = getMenuInflater();
 inflater.inflate(R.menu.menu_option, menu); 

3. 在Activity的onOptionsItemSelected方法中处理每个菜单项的点击事件:

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.media_play:      
break;
case R.id.media_pause:      
break;
case R.id.file_open:      
break;
case R.id.file_save:
…
}
return true;
}

 在XML可以定义菜单项的图标、快捷键、checkbox等更多特征,了解更多请查阅SDK中关于菜单的主题。
 演示的效果如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android简易图片浏览器的实现

    Android简易图片浏览器的实现

    最近做了一个图片浏览小程序,本文主要介绍了Android简易图片浏览器的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Android 开发使用Activity实现加载等待界面功能示例

    Android 开发使用Activity实现加载等待界面功能示例

    这篇文章主要介绍了Android 开发使用Activity实现加载等待界面功能,结合实例形式详细分析了Android基于Activity实现加载等待界面布局与功能操作技巧,需要的朋友可以参考下
    2020-05-05
  • Android开发模仿qq视频通话悬浮按钮(实例代码)

    Android开发模仿qq视频通话悬浮按钮(实例代码)

    这篇文章主要介绍了Android开发模仿qq视频通话悬浮按钮功能的实例代码,需要的的朋友参考下
    2017-02-02
  • 基于Android实现烟花效果

    基于Android实现烟花效果

    这篇文章文章我们将介绍如何通过Canvas 2D坐标系实现粒子效果,文中通过代码示例和图文结合介绍的非常详细,对大家的学习或工作有一定的帮助,感兴趣的同学可以自己动手尝试一下
    2023-11-11
  • Android多线程学习实例详解

    Android多线程学习实例详解

    这篇文章主要介绍了Android多线程,结合实例形式较为详细的分析了Android多线程的概念、使用方法与相关注意事项,需要的朋友可以参考下
    2016-10-10
  • Android下载进度监听和通知的处理详解

    Android下载进度监听和通知的处理详解

    这篇文章主要为大家详细介绍了Android下载进度监听和通知的处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Android中ListView设置静态数据的方法

    Android中ListView设置静态数据的方法

    这篇文章主要介绍了Android中ListView设置静态数据的方法,如何为ListView设置静态数据,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Kotlin在Android工程中的应用详解

    Kotlin在Android工程中的应用详解

    这篇文章主要为大家详细介绍了Kotlin在Android工程中的应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 深入学习Kotlin 枚举的简洁又高效进阶用法

    深入学习Kotlin 枚举的简洁又高效进阶用法

    这篇文章主要为大家介绍了深入学习Kotlin 枚举简洁又高效的进阶用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Android中Notification用法实例总结

    Android中Notification用法实例总结

    这篇文章主要介绍了Android中Notification用法,以实例形式较为详细的分析并总结了Notification的功能与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论