Android创建Menu菜单的一种方法:利用MenuInflater-2014年12月3日

    本文参考自:http://weizhulin.blog.51cto.com/1556324/311446/

     利用一个小Demo来学习这种制作Menu的方法,这个Demo实现了是个菜单,并且实现了一个菜单事件。效果图如下:

 

点击settings会进入菜单事件,显示的页面如下:

Demo的具体步骤如下:

  首先,需要在要用到的图标(search、settings等)拷贝到res的drawables的目录下面。

 其次,要在res的menu下面建立一个xml文件,这个xml文件决定了你要添加几个menu菜单,每个menu菜单叫什么名字,各个menu菜单之间是怎么样的一个相对位置。

  • view plaincopy to clipboardprint?  
  • <?xml version="1.0" encoding="utf-8"?>     
  • <menu     
  •   xmlns:android="http://schemas.android.com/apk/res/android">     
  •     <item android:id="@+id/menu_add"    
  •           android:title="Add"    
  •           android:icon="@drawable/ic_menu_add"    
  •            />     
  •     <item android:id="@+id/menu_wallaper"    
  •           android:title="Wallpaper"    
  •           android:icon="@drawable/ic_menu_gallery"    
  •            />     
  •    <item android:id="@+id/menu_search"    
  •           android:title="Search"    
  •           android:icon="@drawable/ic_search_category_default"    
  •            />     
  •    <item android:id="@+id/menu_setting"    
  •           android:title="Settings"    
  •           android:icon="@drawable/ic_menu_preferences"    
  •            />     
  • </menu>    

   最后在主类MenuInlater.java中来调用这个menu下的文件,并且实现菜单点击的事件。

  • view plaincopy to clipboardprint?  
  • package com.android.tutor;     
  • import android.app.Activity;     
  • import android.content.Intent;     
  • import android.os.Bundle;     
  • import android.view.Menu;     
  • import android.view.MenuInflater;     
  • import android.view.MenuItem;     
  • public class MenuInflaterDemo extends Activity {     
  •     @Override    
  •     public void onCreate(Bundle savedInstanceState) {     
  •         super.onCreate(savedInstanceState);     
  •         setContentView(R.layout.main);     
  •     }     
  •          
  •     @Override    
  •     public boolean onCreateOptionsMenu(Menu menu) {     
  •         MenuInflater inflater = getMenuInflater();     
  •         inflater.inflate(R.menu.options_menu, menu);         
  •         return true;     
  •     }     
  •          
  •     @Override    
  •     public boolean onOptionsItemSelected(MenuItem item) {     
  •         switch (item.getItemId()) {     
  •         case R.id.menu_add:     
  •                  
  •             break;     
  •         case R.id.menu_wallaper:     
  •             break;     
  •         case R.id.menu_search:     
  •             break;     
  •         case R.id.menu_setting:     
  •             showSettings();     
  •             break;     
  •         }     
  •         return super.onOptionsItemSelected(item);     
  •     }     
  •          
  •          
  •     private void showSettings(){     
  •              
  •      final Intent settings = new Intent(android.provider.Settings.ACTION_SETTINGS);     
  •             settings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |     
  •                     Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);     
  •                  
  •         startActivity(settings);     
  •    }     
  • }    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值