Android学习笔记之Menu一级菜单、二级菜单的使用

(1)布局文件没有做更改

(2)在res--menu目录下的main.xml文件中代码如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- 一级菜单 -->
    <item
        android:id="@+id/file"
        android:title="@string/file">

        <!-- 二级菜单 -->
        <menu>
            <item
                android:id="@+id/create"
                android:title="@string/create">
            </item>
            <item
                android:id="@+id/open"
                android:title="@string/open">
            </item>
        </menu>
    </item>
    <!-- 一级菜单 -->
    <item
        android:id="@+id/chioce"
        android:title="@string/chioce">

        <!-- 二级菜单 -->
        <menu>
            <item
                android:id="@+id/create1"
                android:title="@string/create">
            </item>
            <item
                android:id="@+id/open1"
                android:title="@string/open">
            </item>
        </menu>
    </item>

</menu>

(3)values目录下的string.xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Menu_submenu</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="file">文件</string>
    <string name="create">新建</string>
    <string name="open">打开</string>
    <string name="chioce">选项</string>

</resources>

(3)MainActivity.java代码如下:

package com.example.menu_submenu;

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

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) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	/*
	 * 处理一级菜单
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.file:
			Toast.makeText(MainActivity.this, "一级菜单file..", Toast.LENGTH_SHORT)
					.show();
			break;
		case R.id.chioce:
			Toast.makeText(MainActivity.this, "一级菜单chioce..",
					Toast.LENGTH_SHORT).show();
			break;

		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	/*
	 * 处理二级菜单的
	 */
	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		switch (item.getItemId()) {
		case R.id.create1:
			Toast.makeText(MainActivity.this, "处理二级菜单create1..",
					Toast.LENGTH_SHORT).show();
			break;
		case R.id.open1:
			Toast.makeText(MainActivity.this, "处理二级菜单create1..",
					Toast.LENGTH_SHORT).show();
			break;
		case R.id.create:
			Toast.makeText(MainActivity.this, "处理二级菜单create..",
					Toast.LENGTH_SHORT).show();
			break;
		case R.id.open:
			Toast.makeText(MainActivity.this, "处理二级菜单open..",
					Toast.LENGTH_SHORT).show();
			break;

		default:
			break;
		}
		return super.onMenuItemSelected(featureId, item);
	}
}

时间: 2024-12-23 16:44:38

Android学习笔记之Menu一级菜单、二级菜单的使用的相关文章

Android学习笔记之Menu的ShowAsAction属性的设置

(1)在res--menu目录下的main.xml文件 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/file" android:orderInCategory="100" android:showAsAction="always" android:title="文件

android学习笔记37——Menu资源

Menu菜单资源 android应用推荐使用XML来定义菜单,其可提供更好的解耦方式. 菜单资源通常位于res/menu文件夹下,其菜单根元素为<menu.../>,menu元素下可包含子元素如下: <item.../>子元素 定义菜单项 <group.../>子元素 将多个<item>定义的菜单项包装成一个菜单组 <group.../>子元素 用于控制整个菜单组的行为,该元素可指定如下常用属性: checkableBehavior menuCa

Android学习笔记——创建一个简单的上下文菜单ContextMenu

例子目标: 在一个显示出来的内容区域内,触摸屏幕显示一个上下文菜单,并且实现监听,当选择菜单项的时候,获得用户选择的项的内容. 实现原理: 1.向内容Activity中的需要显示上下文菜单的内容区域注册上下文菜单响应 2.设计上下文菜单样式 3.在Activity中实现上下文菜单的方法 代码: 上下文菜单的XML内容 <?xml version="1.0" encoding="utf-8"?><menu xmlns:android="ht

Pro Android学习笔记(三三):Menu(4):Alternative菜单

什么是Alternative menu(替代菜单) 举个例子,Activity显示一个文本文件.如果用户想对文本文件进行编辑,Activity不提供编辑能力,但可由其他activity或者其他应用提供.我们将相关信息存储在一个intent中,例如该文本的Uri.这个intent可以匹配系统的多个应用,替代菜单将这些应用一一列出,菜单项的title就是该可被调用的activity的名字,图标也为该可被调用的activity的图表. 小例子说明 我们通过一个小例子进行学习,简单地打开一个URL:we

Android 学习笔记(二七):Menu

Menu由两种形式,Option menu和Context menu.前者是按下设备的Menu硬按钮弹出,后者是长按widget弹出. Option Menu 当我们按下Menu的硬件按钮时,Option Menu将被触发显示,最多可以显示6个选项的icon菜单,如果选项多于6个,第6个选项显示为“More“,点击可以进入扩展菜单.我们将在Android学习笔记(十一):Activity-ListView的例子一的基础上来学习Option Menu,也就是一个基于activity的菜单. 在这个

Android学习笔记&#183;从零开始【一】

开始着手Android.和大多数初用Eclipse的人一样,有些手忙脚乱. 之前看Cocos2d时零星的看过:Cocos2d后来也被耽搁下来了:关于Cocos2d点此穿越,日后更新笔记. 现做下Android学习笔记,记录点滴. -->点击进入Android学习笔记导图.         -->19本Android经典教程+104个Github上火爆项目开源源码 加油! ●1 绑定的SDK工具包http://developer.android.com/sdk ●2 Application Na

Pro Android学习笔记(十):了解Intent(上)

Android引入了Intent的概念来唤起components,component包括:1.Activity(UI元件) 2.Service(后台代码) 3.Broadcast receiver(处理广播消息的代码) 4.Content provider(抽象数据的代码) Intent基本含义 intent是通知平台处理(唤起)的动作.Android唤起的动作将取决于注册了什么动作.例如我们有个简单的Activity:IntentBaiscViewActivity.在AndroidManife

Android学习笔记(四二):SQLite、ListView、ContextMenu

继续上一个例子,结合ListView中对SQLite进行操作. 通过CursorAdapter在ListView中的数据呈现 在上一个例子中,我们可以对SQLite中的数据库进行增删改查,将数据读到游标Cursor中,然后一一读出.在Android中可以通过CursorAdapter直接将数据映射到ListView中,如下处理: public class Chapter22Test1 extends ListActivity{    private SQLiteDatabase  db = nu

Android学习笔记-EditText&TextView&Button&菜单栏

界面文件activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="ma