移动互联培训

您当前的位置:移动互联培训 > Android开发 >

Android菜单使用详解

来源:移动互联培训 2017-02-09

Android中菜单分为两种:选项菜单和上下文菜单。

本文引用地址://mi.hqyj.com/Android/566.html

选项菜单

1、创建选项菜单:

public boolean onCreateOptionsMenu(Menu menu){

/*

*/

menu.add(1,1,1,"菜单1");

menu.add(1,2,2,"菜单2");

menu.add(1,3,3,"菜单3");

menu.add(1,4,4,"菜单4");

return true;

}

2、设置菜单关联的图像和Activity:

MenuItem item1=menu.add(1,1,1,"菜单1");

item1.setIcon(R.drawable.ic_launcher);

item1.setIntent(new Intent(this,Main.class));

3、设置菜单的响应事件:

通过实现OnMenuItemClickListener来实现。

4、动态创建Menu:

动态创建Menu的Item的方法即是创建一个Menu类型的参数传进onCreateOptionsMenu方法。

5、创建子菜单:

android中多只支持两级菜单,因此android中多只会有一个子菜单。

// 添加子菜单

SubMenu fileSubMenu = menu.addSubMenu(1, menuItemId++, 5, "文件");

fileSubMenu.setIcon(R.drawable.file);

fileSubMenu.setHeaderIcon(R.drawable.headerfile);

// 子菜单不支持图像

MenuItem newMenuItem = fileSubMenu.add(1, menuItemId++, 1, "新建");

newMenuItem.setCheckable(true);

newMenuItem.setChecked(true);

MenuItem openMenuItem = fileSubMenu.add(2, menuItemId++, 2, "打开");

MenuItem exitMenuItem = fileSubMenu.add(2, menuItemId++, 3, "退出");

exitMenuItem.setChecked(true);

fileSubMenu.setGroupCheckable(2, true, true);

上下文菜单的使用:

上下文菜单可以和任意的View关联,如TextView、EditView等。

下面创建了一个包含4个菜单项的上下文菜单,后一个菜单包括2个子菜单。

public void onCreateContextMenu(ContextMenu menu, View view,

ContextMenuInfo menuInfo)

{

super.onCreateContextMenu(menu, view, menuInfo);

// menu.clear();

menu.setHeaderTitle("上下文菜单");

menu.setHeaderIcon(R.drawable.face);

menu.add(0, menuItemId++, Menu.NONE, "菜单项1").setCheckable(true)

.setChecked(true);

menu.add(20, menuItemId++, Menu.NONE, "菜单项2");

menu.add(20, menuItemId++, Menu.NONE, "菜单项3").setChecked(true);

menu.setGroupCheckable(20, true, true);

SubMenu sub = menu.addSubMenu(0, menuItemId++, Menu.NONE, "子菜单");

sub.add("子菜单项1");

sub.add("子菜单项2");

}

上下文菜单必须注册到指定的View上才能显示

// 注册上下文菜单

registerForContextMenu(button);

registerForContextMenu(editText);

registerForContextMenu(textView);

400-611-6270

Copyright ©2004-2018 华清远见教育科技集团 版权所有
京ICP备16055225号,京公海网安备11010802025203号