在Android里面有两种方式做菜单(Menu)。第一种写在 public boolean onCreateOptionsMenu(Menu menu) 直接写代码,第二种是把菜单放到一个XML文件里面来定义的
使用第一种方式不好的地方就是使Activity文件过大,因而我们采用第二种方式:

还是老规矩,先看效果图:









效果图如上,让我们来看看用代码是怎么来实现的。


第一步:
先在res目录下创建一个menu目录,这个用来专门存放菜单文件。

第二步:
新建一个xml文件,如下:
sys_menu.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu
  3. xmlns:android="http://schemas.android.com/apk/res/android">

  4. <item android:title="设置" android:id="@+id/menu_set" android:icon="@drawable/icon"/><!-- android:icon="@drawable/icon" 可以使用漂亮的图片 -->
  5. <item android:title="账户管理" android:id="@+id/menu_account" android:icon="@drawable/icon"/>
  6. <item android:title="更多" android:id="@+id/menu_more" android:icon="@drawable/icon">
  7. <menu>
  8. <group>
  9. <item android:title="Copy" android:id="@+id/edit_copy"/>
  10. <item android:title="Paste" android:id="@+id/edit_paste"/>
  11. <item android:title="Cut" android:id="@+id/edit_cut"/>
  12. <item android:title="Delete" android:id="@+id/edit_delete"/>
  13. </group>
  14. </menu>
  15. </item>


  16. <item android:title="更多1" android:id="@+id/menu_more1" android:icon="@drawable/icon">
  17. <menu>
  18. <item android:title="Open..." android:id="@+id/file_open"/>
  19. <item android:title="Save" android:id="@+id/file_save"/>
  20. <item android:title="Save as" android:id="@+id/file_saveas"/>
  21. <item android:title="Exit" android:id="@+id/file_exit"/>
  22. </menu>
  23. </item>
  24. </menu>
复制代码
XML文件就定义完毕了,简单吧。
好了,那我们看看Activity怎么写,
MenuActivity.java
  1. package com.droidstouch.xmlmenu;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.Menu;
  5. import android.view.MenuInflater;
  6. import android.view.MenuItem;
  7. import android.widget.Toast;

  8. /**
  9. *
  10. * @author touchAndroid
  11. * URL:http://bbs.droidstouch.com
  12. */
  13. public class MenuActivity extends Activity {
  14. public void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. }


  18. /**
  19. * 重写onCreateOptionsMenu 方法
  20. */
  21. public boolean onCreateOptionsMenu(Menu menu)
  22. {
  23. //获取MenuInflater对象
  24. MenuInflater inflater = getMenuInflater();
  25. // 使用自定义的XML菜单文件
  26. inflater.inflate(R.menu.sys_menu, menu);

  27. return super.onCreateOptionsMenu(menu);
  28. }


  29. /**
  30. * 判断所选择的菜单
  31. */
  32. public boolean onOptionsItemSelected(MenuItem item)
  33. {

  34. switch (item.getItemId())
  35. {
  36. case R.id.menu_set:
  37. Toast.makeText(this, "选择了设置菜单", Toast.LENGTH_LONG).show();
  38. break;
  39. case R.id.menu_account:
  40. Toast.makeText(this, "选择了账户管理菜单", Toast.LENGTH_LONG).show();
  41. break;
  42. default:
  43. break;
  44. }
  45. return super.onOptionsItemSelected(item);
  46. }
  47. }
复制代码
完成这几步就搞定了,大功告成。

更多相关文章

  1. Android中,怎么优雅的生成代码?
  2. android 破解软件
  3. Android(安卓)里的FrameBuffer
  4. Android(安卓)eng版系统烧录
  5. Android之WebView安全
  6. Android多渠道Ant打包详细
  7. Android(安卓)NDK 开发教程六: application.mk
  8. Android(安卓)仿Facebook滑动菜单-支持android 2.2
  9. Android(安卓)studio 快捷键汇总

随机推荐

  1. 数组多重排序
  2. jQuery在5秒后自动加载div
  3. 如何在单击按钮时将桌面应用程序导航到系
  4. 如何用NodeJS组织构建、服务器、客户端和
  5. 将特殊字符转换为HTML实体,Laravel
  6. 使用CSS,HTML和Javascript在随机图像的页
  7. JavaScript学习笔记——简单无缝循环滚动
  8. js设计模式总结-代理模式
  9. 使用Isotop过滤日期
  10. 如何使用Valums Ajax文件上传器触发上传