UI_Menu_Options Menu

package  com.lamp.menu;

import  android.app.Activity;
import  android.os.Bundle;
import  android.view.Menu;
import  android.view.MenuItem;
import  android.widget.Toast;

/**
 * UI菜单组件
 * 菜单组件分为三种:
 * 1、选项菜单(Options Menu)
 *      (1)重写 onCreateOptionsMenu() 方法
 *      (2)创建选项菜单,两种实现方式:
 *            <1> 使用硬填充的方式,即直接使用代码方式添加选项菜单
 *            <2> 使用菜单填充器填充选项菜单,需要在res/menu目录下创建一个ui_menu的XML配置文件,在ui_menu配置文件中配置相应的item
 *      (3)重写 onOptionsItemSelected()方法,实现选项菜单的点击事件。
 * 2、上下文菜单(Context Menu)
 * 3、弹出菜单( Popup Menu)
 *  @author  白世鑫
 *
 */
public  class  MainActivity  extends  Activity {

     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
          super .onCreate(savedInstanceState);
        setContentView(R.layout.  activity_main );
    }

     @Override
     public  boolean  onCreateOptionsMenu(Menu menu) {
          /****************第一种方式,硬填充****************/
          //menu.add(0, 1, 100, "字体大小");
          //menu.add(0, 2, 200, "字体颜色");
          //menu.add(0, 3, 300, "普通菜单");
        
          /****************第二种方式,使用菜单填充器填充选项菜单****************/
          /****************MenuInflater:菜单填充器****************/
          /****************使用ui_menu填充menu****************/
        getMenuInflater().inflate(R.menu.  ui_menu , menu);
          return  true  ;
    }
    
     /*
     * 选项菜单的点击事件
     */
     @Override
     public  boolean  onOptionsItemSelected(MenuItem item) {
        
          switch  (item.getItemId()) {
          case  R.id. start_game  :
            Toast. makeText(MainActivity. this ,  "正在读取游戏资源,请稍后...."  , Toast. LENGTH_SHORT ).show();
              break ;
          case  R.id. setting_game  :
            Toast. makeText(MainActivity. this ,  "正在进入游戏设置界面,请稍后...."  , Toast. LENGTH_SHORT ).show();
              break ;
          case  R.id. stop_game  :
            Toast. makeText(MainActivity. this ,  "正在保存游戏数据,马上退出...."  , Toast. LENGTH_SHORT ).show();
              break ;
          default :
              break ;
        }
        
          return  super .onOptionsItemSelected(item);
    }

}


第二种实现方式,使用XML配置文件的方式中ui_menu的声明如下:

<? xml  version =  "1.0"  encoding  = "utf-8" ?>
< menu  xmlns:android = "http://schemas.android.com/apk/res/android"  >
     <!-- @+id:表示创建一个id start_game:为id名 -->
     <!-- @string/start_game:为引用 res/values/strings.xml文件中的资源 -->
     < item
         android:id = "@+id/start_game"
         android:orderInCategory = "100"
         android:title = "@string/start_game"  />
     < item
         android:id = "@+id/setting_game"
         android:orderInCategory = "200"
         android:title = "@string/setting_game"  />
     < item
         android:id = "@+id/stop_game"
         android:orderInCategory = "300"
         android:title = "@string/stop_game"  />
</ menu >

ui_menu 中 引用的 strings.xml 中定义如下:
<? xml  version =  "1.0"  encoding  = "utf-8" ?>
< resources >
     < string  name = "app_name" >  002_UI_Menu </ string  >
     < string  name = "action_settings"  > Settings  </ string >
     < string  name = "hello_world" >  Hello world! </ string >
     < string  name = "start_game" >  开始游戏 </ string  >
     < string  name = "stop_game" >  退出游戏 </ string  >
     < string  name = "setting_game" >  游戏设置 </ string  >
</ resources >


程序运行结果:







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值