`
zhuxinzx
  • 浏览: 293675 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android MenuInflater的使用

 
阅读更多

Android MenuInflater,顾名思义,Android MenuInflater是用来解析定义在layout下的布局文件,那么MenuInflater是不是用来解析定义在menu目录下的菜单布局文件呢?恭喜你答对了!

我们传统意义上的布局定义菜单感觉比较繁琐,当我们使用MenuInflater来生成菜单,你会发现是多么的爽朗,呵呵,我今天的小Demo,是定义四个菜单,并且实现了一个菜单事件。就是我们点击设置(Setting)菜单,进入手机设置状态!下面看一下效果图:

 

下面是实现Demo的详细步骤:

一、建立一个Android工程我们命名为MenuInflaterDemo

二、在res目录下创建menu目录,并且创建options_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>

 三、主类MenuInflaterDemo.java的编码,这里写的代码很少哦,我这里只写了第四个菜单(Settings)的响应事件。全部代码如下:

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);
    }
}

 四、运行代码之,点击模拟器上的menu按钮将会出现上述效果图。

分享到:
评论

相关推荐

    用Android MenuInflater创建菜单项的方法步骤

    以下是对使用Android MenuInflater创建菜单项的详细步骤和相关知识点的解释: 1. **菜单资源定义**: 在`res/menu`目录下,创建一个XML文件,例如`main.xml`,用于定义菜单项。在该文件中,每个`&lt;item&gt;`标签代表一...

    Android高手进阶教程与Android基础教程

    Android高手进阶教程之----Android 中MenuInflater的使用(布局定义菜单)! .doc Android高手进阶教程之----Android 中Preferences的使用! .doc Android高手进阶教程之----Android 中自定义View的应用.doc Android高手...

    android菜单使用示例

    本示例主要探讨如何在Android平台上有效地使用Menu。通过分析`MenuActivity`这个源码,我们可以深入理解Menu的创建、显示以及处理点击事件的过程。 1. **Menu的基本结构** Android中的Menu是由`Menu`类表示的,它...

    android menu菜单距中显示

    在这个方法中,使用`MenuInflater`对象的`inflate()`方法将XML布局文件加载到菜单中。以下是一个简单的例子: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = ...

    Android中使用xml文件定义菜单资源.pdf

    在Android应用开发中,使用XML文件来定义菜单资源是一种常见的做法,这有助于分离界面设计和业务逻辑,使得代码更加清晰易读。以下是关于在Android中使用XML定义菜单资源的详细说明: 1. **菜单资源的位置**: ...

    Android 使用 XML 菜单例子

    本篇文章将深入探讨如何在Android中使用XML来创建和管理菜单,以及如何在实际应用中实现这些菜单。 首先,我们需要了解Android菜单的基本结构。在Android中,菜单通常分为三个级别:Options Menu(选项菜单)、...

    Android中Action Bar的使用

    本篇文章将深入探讨如何在Android中有效地使用Action Bar,包括其基本概念、设置方法以及自定义选项。 首先,Action Bar在Android 3.0(API级别11)被引入,旨在提高用户体验和应用一致性。在早期版本的Android中,...

    Android_菜单(Menu)控件的使用.pdf

    此方法中使用MenuInflater来加载定义好的XML菜单布局文件。onOptionsItemSelected方法用于处理菜单项被选中的事件,它需要根据菜单项的ID来执行相应的操作。 文档还介绍了使用Menu.add方法通过代码动态添加菜单项。...

    Android Menu控件源码

    本文将深入探讨Android Menu控件的源码,理解其工作原理,以及如何在实践中有效地使用它。 Menu控件在Android系统中扮演着提供应用功能选项的角色,它主要由三部分组成:MenuItem、Menu和MenuInflater。MenuItem是...

    Android中使用选项菜单模拟微信功能练习的任务要求.pdf

    使用`MenuInflater`的`inflate()`方法将菜单布局填充到活动中。 3. **处理菜单项的点击事件** - 为了响应用户点击菜单项,需要重写`onOptionsItemSelected(MenuItem item)`方法。在这个方法中,通过比较`item....

    Android菜单、对话框使用实例源码

    1. **OptionsMenu**:在Android的`onCreateOptionsMenu()`方法中,我们需要创建一个菜单资源,并通过`MenuInflater`来填充菜单项。每个菜单项可以通过`MenuItem`对象进行定制,如设置图标、文本、快捷键等。例如: `...

    老罗android视频开发源码和ppt--android菜单的使用.rar

    使用`menuInflater.inflate()`方法加载XML资源文件(通常位于res/menu/目录下),其中包含了菜单项的定义。 2. **菜单项的XML布局**: 在res/menu目录下的XML文件中,每个菜单项通过`&lt;item&gt;`标签定义,包括`android:...

    android 界面超炫菜单效果

    要创建这些菜单,我们可以在Activity的`onCreateOptionsMenu()`方法中定义`Menu`对象,并使用`MenuInflater`来填充菜单项。 对于超炫的菜单效果,我们可以利用Android的动画库和自定义视图。例如,我们可以创建一个...

    Android 按Menu弹出菜单

    在这个XML文件中,我们可以使用`&lt;menu&gt;`标签作为根元素,然后用`&lt;item&gt;`标签来定义每个菜单项,包括其ID、标题、图标以及可能的快捷键等属性。 ```xml &lt;menu xmlns:android=...

    Android 系统菜单与自定义菜单

    - 考虑到Android版本的兼容性问题,需要确保在API 11以下使用`android:showAsAction`属性的旧版语法`android:showAsAction="ifRoom"`,而API 11及以上使用新版语法`app:showAsAction="ifRoom"`。 6. **菜单的最佳...

    Android 菜单(OptionMenu)大全 建立你自己的菜单

    本文将深入探讨如何在Android中创建和使用OptionMenu,以及与之相关的ContextMenu。 首先,我们要了解OptionMenu的基本概念。OptionMenu通常在应用程序的顶部栏中显示,当用户点击菜单图标(通常是三个垂直点)时...

    android开发之基础menu篇

    在“android开发之基础menu篇”这个主题中,我们将深入探讨如何在Android应用中创建、设计和使用Menu。 Menu主要用于在不占据屏幕主要空间的情况下提供额外的交互选项。在Android中,Menu主要分为三类:Option Menu...

    Android高手进阶教程

    #### 六、Android中MenuInflater的使用(布局定义菜单) MenuInflater主要用于加载XML定义的菜单布局。主要步骤包括: 1. **在res/menu目录下创建XML文件**来定义菜单项。 2. **使用MenuInflater加载菜单布局**,...

Global site tag (gtag.js) - Google Analytics