Android开发之菜单(menu)用法实例分析
作者:Flying_tao 发布时间:2022-06-22 23:13:28
标签:Android,菜单,menu
本文实例讲述了Android开发之菜单(menu)用法。分享给大家供大家参考,具体如下:
Android手机专门用一个按键“menu“来显示菜单。
要实现菜单功能,首先要通过方法onCreateOptionMenu来创建菜单,创建方法有两种:一种是直接导入有menu的xml文件,一种是用类Menu的方法直接添加。创建好菜单后,用事件 * onOptionItemSelected对能够触发的事件进行监听。
下面这个例子有两个Activity,分别有上面的两种方法实现menu,每个menu里都有事件 * 进行Activity跳转和退出。
1.资源文件下的menu文件res/menu/menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/about"
android:title="关于" />
<item android:id="@+id/exit"
android:title="退出" />
</menu>
Activity01.Java
package com.yarin.android.Examples_04_13;
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 Activity01 extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
/*创建menu*/
public boolean onCreateOptionsMenu(Menu menu)
{
//MenuInflater class is used to instantiate menu XML files into Menu objects
MenuInflater inflater = getMenuInflater();
//设置menu界面为res/menu/menu.xml
inflater.inflate(R.menu.menu, menu);
return true;
}
/*处理菜单事件*/
public boolean onOptionsItemSelected(MenuItem item)
{
//得到当前选中的MenuItem的ID,
int item_id = item.getItemId();
switch (item_id)
{
case R.id.about:
/* 新建一个Intent对象 */
Intent intent = new Intent();
/* 指定intent要启动的类 */
intent.setClass(Activity01.this, Activity02.class);
/* 启动一个新的Activity */
startActivity(intent);
/* 关闭当前的Activity */
Activity01.this.finish();
break;
case R.id.exit:
Activity01.this.finish();
break;
}
return true;
}
}
Activity02.java
package com.yarin.android.Examples_04_13;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class Activity02 extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* 设置显示main2.xml布局 */
setContentView(R.layout.main2);
}
/*创建menu*/
public boolean onCreateOptionsMenu(Menu menu)
{
//为menu添加内容
menu.add(0, 0, 0, R.string.ok);
menu.add(0, 1, 1, R.string.back);
return true;
}
/*处理menu的事件*/
public boolean onOptionsItemSelected(MenuItem item)
{
//得到当前选中的MenuItem的ID,
int item_id = item.getItemId();
switch (item_id)
{
case 0:
case 1:
/* 新建一个Intent对象 */
Intent intent = new Intent();
/* 指定intent要启动的类 */
intent.setClass(Activity02.this, Activity01.class);
/* 启动一个新的Activity */
startActivity(intent);
/* 关闭当前的Activity */
Activity02.this.finish();
break;
}
return true;
}
}
本例用到了两个Activity,不要忘记在AndroidManifest.xml中声明。
PS:关于AndroidManifest.xml文件相关属性功能可参考本站在线工具:
Android Manifest功能与权限描述大全:
http://tools.jb51.net/table/AndroidManifest
希望本文所述对大家Android程序设计有所帮助。


猜你喜欢
- Java动态数组Arraylist存放自定义数据类型class Point{ int x; int y; public Point(int
- 目录前言解决方案前言我们在开发Spring应用时可能会不小心注入两个相同类型的Bean,比如实现了两个相同Service接口的类,示例伪代码
- 前言终于算是忙完了一个阶段!!!从4月份开始,工作内容以及职务上都进行了较大的变动,最直接的就是从海外项目组调到了国内项目组。国内项目组目前
- 1 数据响应  数据响应一般分为两种:页面响应和数据响应,一般来说页面响应是用来开发一些单体项目(也就是
- 在类中自定义的“函数”称为“方法”,由于C#是完全面向对象的
- 1、前言我学习Java已经将近一个月的时间了,从一个小白开始慢慢摸索,现在已经逐渐进入状态,学会了一些东西,故将自己从0开始的经历分享出来。
- 前言项目使用了SpringBoot构建项目。下面对动态调整日志的级别进行记录。从版本 1.5.1 之后就提供了基于 spring-boot-
- 1. 创建自定义 * 类并实现 HandlerInterceptor 接口package com.xgf.online_mall.inter
- 本文实例讲述了C#中HttpWebRequest的用法。分享给大家供大家参考。具体如下:HttpWebRequest类主要利用HTTP 协议
- 目录概述1 技术工具2 构建Spring Boot工程3 开始编写测试和代码1 Controller2 Service3 Repositor
- 概述众所周知使用 JWT 做权限验证,相比 Session 的优点是,Session 需要占用大量服务器内存,并且在多服务器时就会涉及到共享
- 本文以实例形式展示了基于C#实现Windows服务状态启动和停止服务的方法。非常实用。分享给大家供大家参考之用。具体方法如下:首先先引用:S
- MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作。为什么要
- ExecutorsExecutors 是一个Java中的工具类. 提供工厂方法来创建不同类型的线程池.从上图中也可以看出, Executor
- PagerBottomTabStrip 是一个基本按谷歌Material Design规范完成的安卓底部导航栏控件官方设计规范:https:
- 注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是myb
- 内存泄漏:是指内存得不到GC的及时回收,从而造成内存占用过多,从而导致程序Crash,也就是常说的OOM。 一、static 先来看下面一段
- 项目介绍基于Layui的后台管理系统模板,扩展Layui原生UI样式,整合第三方开源组件,提供便捷快速的开发方式,延续LayuiAdmin的
- 前言这里使用的工具是DEV C++可以借鉴一下一、实训名称线性表的基本操作二、实训目的1.掌握线性表的基本概念2.掌握线性表的存储结构(顺序
- 简介本文用示例介绍java的Period的用法。Duration和Period说明Duration类通过秒和纳秒相结合来描述一个时间量,最高