哥伯尔,荣佑文,风流逍遥侯
和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 studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论