Android手机有一个"Menu"键,用来专门显示菜单,要实现菜单功能,需要通过onCreateOptionsMenu()来创建菜单,然后需要对其能够触发的事件进行监听,这样才能够在事件监听onOptionsItemSelected中根据不同的菜单选项来执行不同的任务。
添加菜单日有两种方式,一种是XAL布局,另一种是通过Menu.add()方法添加。
第一种,通过XML布局,在res下创建menu目录,在里面添加menu.xml文件,内容:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/about" android:id="@+id/about">
</item>
<item android:title="@string/exit" android:id="@+id/exit">
</item>
</menu>
第二种,Menu.add(0,0,0,R.string.btn_name)方示添加:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,0,0,R.string.ok);
menu.add(0,0,0,R.string.back);
return true;
}
效果图:
代码:
1.res/values/string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="about_me">详细内容可登录http://www.80080088.com了解!</string>
<string name="main_menu">这里演示的是Andrid菜单功能!</string>
<string name="app_name">菜单</string>
<string name="about">关于</string>
<string name="exit">退出</string>
<string name="ok">确定</string>
<string name="back">返回</string>
</resources>
2.res/layout/main.xml和about.xml
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/main_menu"
/>
</LinearLayout>
about.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/about_me"/>
</LinearLayout>
3,res/menu/menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/about" android:id="@+id/about">
</item>
<item android:title="@string/exit" android:id="@+id/exit">
</item>
</menu>
4.A011Activity.java和AboutActivity.java
A011Activity.java
package com.cottsoft.android;
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 A011Activity extends Activity {
/** Called when the activity is first created. */
@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.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int item_id = item.getItemId();
switch (item_id) {
case R.id.about:
Intent intent = new Intent();
intent.setClass(A011Activity.this, AboutActivity.class);
startActivity(intent);
A011Activity.this.finish();
break;
case R.id.exit:
A011Activity.this.finish();
break;
}
return true;
}
}
AboutActivity.java
/**********************************************
* @author Simon Hoo (simon@cottsoft.com)
* @contact QQ:9930323 MSN: simon_hoo@msn.com
* @OnlineSupport: http://www.cottsoft.com
* @Create 2011-4-4
* @version V1.0
********************************************/
package com.cottsoft.android;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class AboutActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.about);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,0,0,R.string.ok);
menu.add(0,0,0,R.string.back);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int item_id = item.getItemId();
switch(item_id){
case 0:
case 1:
Intent intent = new Intent();
intent.setClass(AboutActivity.this, A011Activity.class);
startActivity(intent);
AboutActivity.this.finish();
break;
}
return true;
}
}
- 大小: 65 KB
- 大小: 66.3 KB
分享到:
相关推荐
《高等学校计算机科学与技术项目驱动案例实践规划教材:Android应用开发案例教程》应用“项目驱动(Project-Driven)”最新教学模式,通过完整的项目案例系统地介绍了使用Android技术设计与开发应用系统的理论和方法...
《Android应用开发完全自学手册》是一本全面介绍Android应用开发的指南,涵盖了从基础到进阶的各个环节。这本书旨在帮助初学者系统地学习并掌握Android应用的开发技能,通过源代码解析来提升实践能力。 第1章:...
《Android应用开发案例教程(高等学校计算机科学与技术项目驱动案例实践规划教材)》编著者毋建军、徐振东、林瀚。, 《Android应用开发案例教程(高等学校计算机科学与技术项目驱动案例实践规划教材)》应用“项目驱动...
通过对GreenDroid的源码进行分析,开发者可以学习到如何设计和实现一个强大的UI框架,并可能从中获得灵感,为自己的应用开发带来新的思路和解决方案。 总之,"Android程序研发源码Android ui开发类库示例源码.zip...
在Android应用开发中,UI设计是至关重要的,它直接影响到用户体验和应用的吸引力。本教程将专注于使用TabHost创建一个美观且功能完善的菜单系统。TabHost是Android SDK提供的一种组件,用于实现多标签页的界面布局,...
《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言 第一部分 准备篇 第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 ...
杨丰盛,Android应用开发先驱,对Android有深入研究,实战经验极其丰富。精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。2007年获得中国软件行业协会...
在Android开发中,UI设计是至关重要的一环,它直接影响到应用程序的用户体验。这个"Android UI控件组件库集合【源码】"提供了多种常用的UI控件及其源代码,旨在帮助开发者构建更加美观、功能丰富的应用界面。下面...
【标题解析】 "android应用源码QQ_UI之分类菜单" 指的是一个与Android应用程序相关...总的来说,这份源码是一个宝贵的教育资源,可以帮助Android开发者深入了解QQ应用的UI设计思路,并提升自己的Android应用开发技能。
### Android开发UI实践 #### 一、Android UI开发概述 在Android开发中,用户界面(UI)设计是一项至关重要的任务。良好的UI不仅能够提升用户体验,还能显著提高应用程序的吸引力和市场竞争力。然而,对于很多...
本资源包“Android开发+UI组件+QQ侧滑菜单+项目实战示例:Android 超高仿 QQ5.0 侧滑菜单项目完整实例代码”为Android开发者提供了一个详尽的实例,展示如何创建一个与QQ5.0版本中的侧滑菜单高度相似的用户界面。...
以上内容概括了《Android应用开发入门教程》中的主要知识点,涵盖了Android开发的基础知识、开发环境搭建、应用程序构建及UI实现等方面。这些知识点对于初学者来说是非常重要的基础,掌握了这些内容后,就可以进一步...
在Android应用开发中,QQ UI的设计与实现是一个常见的课题,特别是在毕业设计中,它能帮助学生深入理解Android界面设计和交互逻辑。这个"Android应用源码之QQ_UI之分类菜单DEMO"是一个很好的实践项目,它涵盖了多个...
在Android应用开发中,UI设计是至关重要的一个环节,它直接影响到用户对应用程序的第一印象和交互体验。"Android开发的UI图标大全"是一份专为Android开发者准备的资源集合,旨在帮助开发者快速找到并使用合适的图标...
自定义SystemUI中的下拉菜单是一项高级开发任务,尤其对于Android开发者来说。SystemUI是Android操作系统的一部分,负责显示状态栏、通知栏等用户界面元素。本文旨在提供一种方法,通过自定义的方式来模仿并实现...
Options Menu是Android应用程序中最常见的菜单类型,通常在屏幕的顶部或底部(取决于设备和Android版本)显示一个汉堡图标,点击后展开。它包含了与全局应用功能相关的选项,比如设置、帮助、关于等。开发者可以在`...
在本资源中,我们主要探讨的是一个Android应用的源码,该源码是关于QQ...通过深入研究这个项目,你不仅可以提升Android应用开发技能,还能了解到如何构建类似QQ应用的分类菜单,这对于提升自己的项目实战能力大有裨益。