Menu基本介绍实现
来源:互联网 发布:系统重装后数据恢复 编辑:程序博客网 时间:2024/06/04 00:26
Activity类中的onCreateOptionsMenu事件方法用来创建选项菜单,该方法的定义如下:
public boolean onCreateOptionsMenu(Menu menu);
一般需要将创建选项菜单的代码放在onCreateOptionsMenu方法中,通过menu.add方法可以添加一个选项菜单项。该方法有4中重载形式:
public abstract MenuItem add(CharSequence title)
public abstract MenuItem add(int titleRes)
public abstract MenuItem add(int groupId, int itemId, int order,CharSequence title)
public abstract MenuItem add(int groupId, int itemId, int order, int titleRes)
groupId:菜单项的分组ID,该参数一般用于带选项按钮的菜单。参数值可以是负整数、0和正整数。
itemId:当前添加的菜单项的ID。该参数值可以是负整数、0和正整数。
order:菜单显示顺序,参数值必须是0和正整数,不能为负整数,采用从左到右,从上到下显示。
title或者titleRes:菜单项标题的stringID或者字符串。
1.添加选项菜单项
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuItem addMenuItem = menu.add(1, 1, 1, "添加");
- MenuItem okMenuItem = menu.add(1, 2, 2, "OK");
- MenuItem deleteMenuItem = menu.add(1, 3, 3, "删除");
- return true;
- }
2.给选项菜单项添加图标
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuItem addMenuItem = menu.add(1, 1, 1, "添加");
- MenuItem okMenuItem = menu.add(1, 2, 2, "OK");
- MenuItem deleteMenuItem = menu.add(1, 3, 3, "删除");
- return true;
- }
3.关联Activity
- @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);
- MenuItem addMenuItem = menu.add(1, 1, 1, "添加");
- MenuItem okMenuItem = menu.add(1, 2, 2, "OK");
- MenuItem deleteMenuItem = menu.add(1, 3, 3, "删除");
- addMenuItem.setIcon(R.drawable.add);
- okMenuItem.setIcon(R.drawable.ok);
- deleteMenuItem.setIcon(R.drawable.delete);
- //将DeleteActivity与delete菜单项进行关联
- deleteMenuItem.setIntent(new Intent(this, DeleteActivity.class));
- return true;
- }
4.响应菜单的单击动作
- package cn.yh.menufirst;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.MenuItem.OnMenuItemClickListener;
- import android.widget.Toast;
- public class MainActivity extends Activity implements OnMenuItemClickListener{
- private MenuItem addMenuItem;
- private MenuItem okMenuItem;
- private MenuItem deleteMenuItem;
- @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);
- addMenuItem = menu.add(1, 1, 1, "添加");
- okMenuItem = menu.add(1, 2, 2, "OK");
- deleteMenuItem = menu.add(1, 3, 3, "删除");
- addMenuItem.setIcon(R.drawable.add);
- okMenuItem.setIcon(R.drawable.ok);
- deleteMenuItem.setIcon(R.drawable.delete);
- //给addMenuItem、deleteMenuItem和okMenuItem设置单击事件监听
- addMenuItem.setOnMenuItemClickListener(this);
- okMenuItem.setOnMenuItemClickListener(this);
- deleteMenuItem.setOnMenuItemClickListener(this);
- return true;
- }
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- // TODO Auto-generated method stub
- switch (item.getItemId()) {
- case 1:
- startActivity(new Intent(this, AddActivity.class));
- break;
- case 2:
- startActivity(new Intent(this, OkActivity.class));
- break;
- case 3:
- startActivity(new Intent(this, DeleteActivity.class));
- break;
- default:
- break;
- }
- return true;
- }
- }
当在onMenuItemClick返回true时,则与菜单项关联的Activity失效。也就是说,系统调用单击事件方法后,就不会调用startActivity方法显示与菜单项相关联的Activity。如下:
- package cn.yh.menufirst;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.MenuItem.OnMenuItemClickListener;
- import android.widget.Toast;
- public class MainActivity extends Activity implements OnMenuItemClickListener{
- private MenuItem addMenuItem;
- private MenuItem okMenuItem;
- private MenuItem deleteMenuItem;
- @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);
- addMenuItem = menu.add(1, 1, 1, "添加");
- okMenuItem = menu.add(1, 2, 2, "OK");
- deleteMenuItem = menu.add(1, 3, 3, "删除");
- addMenuItem.setIcon(R.drawable.add);
- okMenuItem.setIcon(R.drawable.ok);
- deleteMenuItem.setIcon(R.drawable.delete);
- //将DeleteActivity与delete菜单项进行关联
- deleteMenuItem.setIntent(new Intent(this, DeleteActivity.class));
- //给addMenuItem、deleteMenuItem和okMenuItem设置单击事件监听
- addMenuItem.setOnMenuItemClickListener(this);
- okMenuItem.setOnMenuItemClickListener(this);
- deleteMenuItem.setOnMenuItemClickListener(this);
- return true;
- }
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- // TODO Auto-generated method stub
- switch (item.getItemId()) {
- case 1:
- startActivity(new Intent(this, AddActivity.class));
- break;
- case 2:
- startActivity(new Intent(this, OkActivity.class));
- break;
- case 3:
- // startActivity(new Intent(this, DeleteActivity.class));
- Toast.makeText(this, R.string.onMenuItemClickDelete, Toast.LENGTH_LONG).show();
- break;
- default:
- break;
- }
- return true;
- }
- }
这时候:当单击delete菜单项时,只会提示R.string.onMenuItemClickDelete内容,而不会打开DeleteActivity。
5.使用Activity的onMenuItemSelected和onOptionsItemSelected方法来响应菜单项的单击事件
public boolean onMenuItemSelected(int featureId, MenuItem item);
public boolean onOptionsItemSelected(MenuItem item);
这两个方法都有一个item参数,用来传递被单击的菜单项的MenuItem参数对象。
- Menu基本介绍实现
- Menu基本介绍实现
- Android基本常用控件的介绍TextView EditText Button Menu
- Menu的基本使用方法
- menu介绍与实例
- Android Menu介绍
- Android中的Menu介绍
- Android中的Menu介绍
- Android menu菜单介绍
- Android基本之Menu菜单
- Matlab基本函数-menu函数
- Android Menu的基本使用
- android menu 实现动态修改menu
- PopWindow实现自定义Menu
- MVC实现ajax menu
- 简单实现添加menu
- Menu菜单的实现
- Android Sliding Menu实现
- 线程的五种状态
- HDU 1016 Prime Ring Problem
- 什么是架构
- 经济学的发展
- c语言实例之国家排序
- Menu基本介绍实现
- iOS中的pch文件
- POJ1068
- Maven Archetype 简单介绍
- 用c语言写的kmeans算法,不是很完善
- 15 个 Android 通用流行框架大全
- 1007. 素数对猜想 (20)
- [Mac]在 Mac 上开发 .Net 应用 c#
- (C语言)自拟顺序表的各种操作