android 调用 Menu 两种方法

什么都不说了,直接上代码:

方法一:

mainActivity.java


  1. package com.example.bluetoothchatv1;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.util.Log;  
  6. import android.view.Menu;  
  7. import android.view.MenuInflater;  
  8. import android.view.MenuItem;  
  9. import android.widget.Toast;  
  10.   
  11. public class MainActivity extends Activity {  
  12.   
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.activity_main);  
  17.     }  
  18.   
  19.  // 点击Menu时,系统调用当前Activity的onCreateOptionsMenu方法,并传一个实现了一个Menu接口的menu对象供你使用  
  20.     @Override  
  21.     public boolean onCreateOptionsMenu(Menu menu) {  
  22.         /* 
  23.          * add()方法的四个参数,依次是: 
  24.          * 1、组别,如果不分组的话就写Menu.NONE, 
  25.          * 2、Id,这个很重要,Android根据这个Id来确定不同的菜单 
  26.          * 3、顺序,那个菜单现在在前面由这个参数的大小决定 
  27.          * 4、文本,菜单的显示文本 
  28.          */  
  29.         menu.add(Menu.NONE, Menu.FIRST + 15"删除").setIcon(  
  30.                 android.R.drawable.ic_menu_delete);  
  31.         // setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以  
  32.         // android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的  
  33.         menu.add(Menu.NONE, Menu.FIRST + 22"保存").setIcon(  
  34.                 android.R.drawable.ic_menu_edit);  
  35.         menu.add(Menu.NONE, Menu.FIRST + 36"帮助").setIcon(  
  36.                 android.R.drawable.ic_menu_help);  
  37.         menu.add(Menu.NONE, Menu.FIRST + 41"添加").setIcon(  
  38.                 android.R.drawable.ic_menu_add);  
  39.         menu.add(Menu.NONE, Menu.FIRST + 54"详细").setIcon(  
  40.                 android.R.drawable.ic_menu_info_details);  
  41.         menu.add(Menu.NONE, Menu.FIRST + 63"发送").setIcon(  
  42.                 android.R.drawable.ic_menu_send);  
  43.         // return true才会起作用  
  44.         return true;  
  45.   
  46.     }  
  47.   
  48.     //菜单项被选择事件  
  49.     @Override  
  50.     public boolean onOptionsItemSelected(MenuItem item) {  
  51.         switch (item.getItemId()) {  
  52.         case Menu.FIRST + 1:  
  53.             Toast.makeText(this"删除菜单被点击了", Toast.LENGTH_LONG).show();  
  54.             break;  
  55.         case Menu.FIRST + 2:  
  56.             Toast.makeText(this"保存菜单被点击了", Toast.LENGTH_LONG).show();  
  57.             break;  
  58.         case Menu.FIRST + 3:  
  59.             Toast.makeText(this"帮助菜单被点击了", Toast.LENGTH_LONG).show();  
  60.             break;  
  61.         case Menu.FIRST + 4:  
  62.             Toast.makeText(this"添加菜单被点击了", Toast.LENGTH_LONG).show();  
  63.             break;  
  64.         case Menu.FIRST + 5:  
  65.             Toast.makeText(this"详细菜单被点击了", Toast.LENGTH_LONG).show();  
  66.             break;  
  67.         case Menu.FIRST + 6:  
  68.             Toast.makeText(this"发送菜单被点击了", Toast.LENGTH_LONG).show();  
  69.             break;  
  70.         }  
  71.   
  72.         return false;  
  73.     }  
  74.   
  75.     //选项菜单被关闭事件,菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项  
  76.     @Override  
  77.     public void onOptionsMenuClosed(Menu menu){  
  78.         Toast.makeText(this"选项菜单关闭了", Toast.LENGTH_LONG).show();  
  79.     }  
  80.   
  81.     //菜单被显示之前的事件  
  82.     @Override  
  83.     public boolean onPrepareOptionsMenu(Menu menu){  
  84.         Toast.makeText(this"选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单", Toast.LENGTH_LONG).show();  
  85.         //如果返回false,此方法就把用户点击menu的动作给消费了,onCreateOptionsMenu方法将不会被调用  
  86.         return true;  
  87.     }  
  88.       
  89.   
  90.   
  91. }  


方法二:

mainActivity.java

  1. package com.example.bluetoothchatv1;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.util.Log;  
  6. import android.view.Menu;  
  7. import android.view.MenuInflater;  
  8. import android.view.MenuItem;  
  9. import android.widget.Toast;  
  10.   
  11. public class MainActivity extends Activity {  
  12.   
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.activity_main);  
  17.     }  
  18.   
  19. // // 点击Menu时,系统调用当前Activity的onCreateOptionsMenu方法,并传一个实现了一个Menu接口的menu对象供你使用  
  20. //  @Override  
  21. //  public boolean onCreateOptionsMenu(Menu menu) {  
  22. //      /*  
  23. //       * add()方法的四个参数,依次是:  
  24. //       * 1、组别,如果不分组的话就写Menu.NONE,  
  25. //       * 2、Id,这个很重要,Android根据这个Id来确定不同的菜单  
  26. //       * 3、顺序,那个菜单现在在前面由这个参数的大小决定  
  27. //       * 4、文本,菜单的显示文本  
  28. //       */  
  29. //      menu.add(Menu.NONE, Menu.FIRST + 1, 5, "删除").setIcon(  
  30. //              android.R.drawable.ic_menu_delete);  
  31. //      // setIcon()方法为菜单设置图标,这里使用的是系统自带的图标,同学们留意一下,以  
  32. //      // android.R开头的资源是系统提供的,我们自己提供的资源是以R开头的  
  33. //      menu.add(Menu.NONE, Menu.FIRST + 2, 2, "保存").setIcon(  
  34. //              android.R.drawable.ic_menu_edit);  
  35. //      menu.add(Menu.NONE, Menu.FIRST + 3, 6, "帮助").setIcon(  
  36. //              android.R.drawable.ic_menu_help);  
  37. //      menu.add(Menu.NONE, Menu.FIRST + 4, 1, "添加").setIcon(  
  38. //              android.R.drawable.ic_menu_add);  
  39. //      menu.add(Menu.NONE, Menu.FIRST + 5, 4, "详细").setIcon(  
  40. //              android.R.drawable.ic_menu_info_details);  
  41. //      menu.add(Menu.NONE, Menu.FIRST + 6, 3, "发送").setIcon(  
  42. //              android.R.drawable.ic_menu_send);  
  43. //      // return true才会起作用  
  44. //      return true;  
  45. //  
  46. //  }  
  47.   
  48.     //菜单项被选择事件  
  49.     @Override  
  50.     public boolean onOptionsItemSelected(MenuItem item) {  
  51.           
  52.         switch (item.getItemId()) {  
  53.         case R.id.item01:   
  54.             Toast.makeText(this"删除菜单被点击了", Toast.LENGTH_LONG).show();  
  55.             break;  
  56.         case R.id.item02:   
  57.             Toast.makeText(this"保存菜单被点击了", Toast.LENGTH_LONG).show();  
  58.             break;  
  59.         case R.id.item03:   
  60.             Toast.makeText(this"帮助菜单被点击了", Toast.LENGTH_LONG).show();  
  61.             break;  
  62.         case R.id.item04:   
  63.             Toast.makeText(this"添加菜单被点击了", Toast.LENGTH_LONG).show();  
  64.             break;  
  65.         case R.id.item05:   
  66.             Toast.makeText(this"详细菜单被点击了", Toast.LENGTH_LONG).show();  
  67.             break;  
  68.         case R.id.item06:   
  69.             Toast.makeText(this"发送菜单被点击了", Toast.LENGTH_LONG).show();  
  70.             break;  
  71.         }  
  72.   
  73.         return false;  
  74.     }  
  75.   
  76.     //选项菜单被关闭事件,菜单被关闭有三种情形,menu按钮被再次点击、back按钮被点击或者用户选择了某一个菜单项  
  77.     @Override  
  78.     public void onOptionsMenuClosed(Menu menu){  
  79.         Toast.makeText(this"选项菜单关闭了", Toast.LENGTH_LONG).show();  
  80.     }  
  81.   
  82.     //菜单被显示之前的事件  
  83.     @Override  
  84.     public boolean onPrepareOptionsMenu(Menu menu){  
  85.         Toast.makeText(this"选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单", Toast.LENGTH_LONG).show();  
  86.         //如果返回false,此方法就把用户点击menu的动作给消费了,onCreateOptionsMenu方法将不会被调用  
  87.         return true;  
  88.     }  
  89.       
  90.     @Override  
  91.     public boolean onCreateOptionsMenu(Menu menu) {  
  92.           
  93.         Log.i("BluetoothChat:""onCreateOptionsMenu");  
  94.        
  95.         //getMenuInflater().inflate(R.menu.activity_menu, menu);  
  96.   
  97.         MenuInflater inflater = getMenuInflater();  
  98.         inflater.inflate(R.menu.activity_menu, menu);  
  99.           
  100.         return true;  
  101.     }  
  102.   
  103.   
  104. }  

修改activity_menu.xml文件
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android" >  
  2.   
  3.     <item  
  4.         android:id="@+id/item01"  
  5.         android:icon="@android:drawable/ic_menu_add"  
  6.         android:title="添加">  
  7.     </item>  
  8.     <item  
  9.         android:id="@+id/item02"  
  10.         android:icon="@android:drawable/ic_menu_edit"  
  11.         android:title="编辑">  
  12.     </item>  
  13.         <item  
  14.         android:id="@+id/item03"  
  15.         android:icon="@android:drawable/ic_menu_save"  
  16.         android:title="保存">  
  17.     </item>  
  18.     <item  
  19.         android:id="@+id/item04"  
  20.         android:icon="@android:drawable/ic_menu_info_details"  
  21.         android:title="详细">  
  22.     </item>  
  23.     <item  
  24.         android:id="@+id/item05"  
  25.         android:icon="@android:drawable/ic_menu_delete"  
  26.         android:title="删除">  
  27.     </item>  
  28.     <item  
  29.         android:id="@+id/item06"  
  30.         android:icon="@android:drawable/ic_menu_help"  
  31.         android:title="帮助">  
  32.     </item>  
  33.   
  34.   
  35. </menu>  


参考来自:http://android.yaohuiji.com/archives/636

多谢了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值