zoukankan      html  css  js  c++  java
  • Android 中文API (92) —— MenuInflater


    前言

      本章内容是android.view.MenuInflater,版本为Android 2.3 r1,翻译来自"獨鍆躌踄",欢迎大家访问他的博客:http://www.cnblogs.com/mxgsa/,再次感谢"獨鍆躌踄" !期待你一起参与Android中文API的翻译,联系我over140@gmail.com。

    声明

      欢迎转载,但请保留文章原始出处:)

        博客园:http://www.cnblogs.com/

        Android中文翻译组:http://goo.gl/6vJQl

    正文

      一、结构

    public class MenuInflater extends Object

            

    java.lang.Object

    android.view.MenuInflater

    直接子类

    TabActivity

     

      二、概述

        

      这个类是用来实例化菜单XML文件成菜单对象。

      由于性能的原因,由于程序创建时候就加载一些预处理XML文件,Menu过多就造成很重的负担。因此,这是目前无法在运行时使用多于一个XmlPullParserxml文件去使用MenuInflater,它只能使用一个XmlPullParser返回的编译过的资源(R.某些文件)

      三、构造函数

               public MenuInflater (Context context)

      构造填充(inflater)一个菜单

    参见

    getMenuInflater()

     

      四、公共方法

               public void inflate (int menuRes, Menu menu)

      菜单层次从一个指定的xml资源去填充,如果有错误会抛掷InflateException

      参数

      menuRes         要加载XML布局文件中的资源ID(例如R.menu.main_activity

      menu       要填充的菜单,这些项目和子菜单就被添加到要填充菜单中

     

      五、补充

      文章精选

          MenuInflater Android菜单从xml创建方法

              AndroidMenuInflater实例

              Android MenuInflater的使用(布局定义菜单)

      示例代码

      新建一个项目,项目文件列表

          

          MenuInfalterTest.java

    public class MenuInflaterTest extends Activity {
        @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }

        
    public boolean onCreateOptionsMenu(Menu menu) {
            
    // 获取当前的菜单
            MenuInflater inflater = getMenuInflater();
            
    // 填充菜单
            inflater.inflate(R.menu.option_menu, menu);
            
    return true;
        }

        
    /**
         * 对菜单点击事件处理
         
    */
        
    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() {
            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);
        }
    }
    }

          Main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation
    ="vertical"
        android:layout_width
    ="fill_parent"
        android:layout_height
    ="fill_parent"
        
    >
    <TextView  
        
    android:layout_width="fill_parent" 
        android:layout_height
    ="wrap_content" 
        android:text
    ="@string/hello"
        
    />
    </LinearLayout>

          Option_menu.xml
    <?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
    ="@android:drawable/ic_menu_add"/>  
         
    <item android:id="@+id/menu_wallaper"  
            android:title
    ="Wallpaper"  
            android:icon
    ="@android:drawable/ic_menu_gallery"/>  
        
    <item  android:id="@+id/menu_search"  
            android:title
    ="Search"  
            android:icon
    ="@android:drawable/ic_search_category_default"/>  
        
    <item  android:id="@+id/menu_setting"  
            android:title
    ="Settings"  
          android:icon
    ="@android:drawable/ic_menu_preferences"/>
    </menu> 




     

     

  • 相关阅读:
    详解Redis中两种持久化机制RDB和AOF(面试常问,工作常用)
    IDEA链接数据库自动生成实体类
    urllib的高级用法
    django项目部署上线
    Git 远程仓库(Github)
    git 标签
    git分支管理
    Git 工作区、暂存区和版本库
    git介绍及安装
    Python3-笔记-numpy学习指南-002-基础
  • 原文地址:https://www.cnblogs.com/over140/p/1937045.html
Copyright © 2011-2022 走看看