Android XML中定义菜单

移动开发 Android
经过这篇文章的介绍会使我们的程序代码简单许多,而且尽可能的将更多的界面设计部分放到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片段显示了菜单的层次定义:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android"
  3. <item android:title="Play" android:id="@+id/media_play" 
  4. android:icon="@android:drawable/ic_media_play"/> 
  5. <item android:title="Pause" android:id="@+id/media_pause" 
  6. android:icon="@android:drawable/ic_media_pause"/> 
  7. <item android:title="File" android:id="@+id/file"
  8. <menu> 
  9. <item android:title="Open..." android:id="@+id/file_open"/> 
  10. <item android:title="Save" android:id="@+id/file_save"/> 
  11. <item android:title="Save as" android:id="@+id/file_saveas"/> 
  12. <item android:title="Exit" android:id="@+id/file_exit"/> 
  13. </menu> 
  14. </item> 
  15. <item android:title="Edit" android:id="@+id/edit"
  16. <menu> 
  17. <group> 
  18. <item android:title="Copy" android:id="@+id/edit_copy"/> 
  19. <item android:title="Paste" android:id="@+id/edit_paste"/> 
  20. <item android:title="Cut" android:id="@+id/edit_cut"/> 
  21. <item android:title="Delete" android:id="@+id/edit_delete"/> 
  22. </group> 
  23. </menu> 
  24. </item> 
  25. </menu> 

2. 重写Activity的onCreateOptionsMenu方法,通过MenuInflater.inflate方法来膨胀菜单XML。

  1. MenuInflater inflater = getMenuInflater(); 
  2. inflater.inflate(R.menu.menu_option, menu); 

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

  1. @Override 
  2. public boolean onOptionsItemSelected(MenuItem item) { 
  3. super.onOptionsItemSelected(item); 
  4. switch (item.getItemId()) { 
  5. case R.id.media_play: 
  6. break
  7. case R.id.media_pause: 
  8. break
  9. case R.id.file_open: 
  10. break
  11. case R.id.file_save: 
  12. return true

 

责任编辑:闫佳明 来源: my.eoe.cn
相关推荐

2013-06-08 17:35:46

Android开发移动开发XML自定义菜单

2013-04-01 14:35:10

Android开发Android自定义x

2015-02-12 15:33:43

微信SDK

2015-02-12 15:38:26

微信SDK

2011-09-05 18:54:03

windowsUbuntu

2010-09-28 14:27:35

SQL定义Xml

2011-05-31 15:56:52

游戏启动菜单Android

2010-01-27 10:21:00

Android菜单

2013-06-08 13:02:11

Android开发XML解析

2011-04-25 14:26:32

Ubuntu菜单

2022-05-18 07:44:13

自定义菜单前端

2013-06-08 17:09:35

Android开发移动开发XML解析

2013-02-19 13:42:30

Android开发string

2013-06-25 11:06:07

Android开发颜色定义方法

2009-01-19 10:03:58

C#XML动态分层菜单

2013-06-09 10:25:56

Android开发XML读写XML解析

2013-06-09 11:31:13

Android开发XML读写XML解析

2013-06-09 10:37:53

Android开发XML读写XML解析

2013-06-09 10:18:29

Android开发XML读写XML解析

2013-06-08 11:04:18

Android开发Pull解析XMLAndroid XML
点赞
收藏

51CTO技术栈公众号