android子视图无菜单,android 菜单详解 -尊龙游戏旗舰厅官网
android中菜单分为三种,选项菜单(optionmenu),上下文菜单(contextmenu),子菜单(submenu)
选项菜单
可以通过两种办法增加选项菜单,一是在menu.xml中添加,该种方式参见android 资源详解(二) 菜单资源,二是在.java中添加
1、覆盖activity 的 oncreateoptionsmenu(menu menu)方法,当我们第一次打开菜单
时该方法被自动调用。
2、调用menu的 add()方法添加菜单项(menultem) ,可以调用menultem的seticon()
方法来为菜单项设置图标。.1
3、当菜单项(menuitem) 被选择时,覆盖 activity 的 onoptionsitemselected()方法来 响应事件。
如下代码:public class mainactivity extends activity {
private static final int menu1=menu.first;
private static final int menu2=menu.first 1;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
}
public boolean oncreateoptionsmenu(menu menu) {
menu.add(0,menu1,0,"ok");
menu.add(0,menu2,0,"cancel");
return true;
}
}
上下文菜单
当用户按住屏幕后,弹出的菜单成为上下文菜单。
1、覆盖activity 的 oncreatecontextmenuo方法, 调用 menu 的 add 方法添加菜单项
2、覆盖oncontextitemselected(menuiten item) 方法,响应菜单单击事件。
3、调用 registerforcontextmenu()方法,为视图注册上下文菜单。当长按视图时,会出现上下文菜单。代码如下:public class mainactivity extends activity {
private static final int menu1=menu.first;
private static final int menu2=menu.first 1;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
textview mytext=(textview)this.findviewbyid(r.id.text1);
this.registerforcontextmenu(mytext);
}
public void oncreatecontextmenu(contextmenu menu,view v,contextmenuinfo menuinfo) {
menu.add(0,menu1,0,"ok");
menu.add(0,menu2,0,"cancel");
}
public boolean oncontextitemselected(menuitem item) {
int id=item.getgroupid();
switch(id) {
case menu1: break;
case menu2:break;
}
return super.oncontextitemselected(item);
}
}
子菜单
子菜单就是将相同功能的分组进行多级显示的一种菜单,比如,windows的"文件"菜单中又有"新建"、"打开"、"关闭"等子菜单。android系统中的子菜单也很多见,如" settings" (设置)菜单就有其子菜单。
具体步骤如下:
1、覆盖activity 的 oncreateoptionsmenu()方法,调用 menu 的 addsubmenu()方法添
加子菜单项 (submenu)。
2、调用submenu的add()方法,添加子菜单 (submenu) 。
3、覆盖oncontextitemselected()方法,响应菜单单击事件。
代码如下:public class mainactivity extends activity {
private static final int menu1=menu.first;
private static final int menu2=menu.first 1;
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
}
public boolean oncreateoptionsmenu(menu menu) {
submenu file=menu.addsubmenu("file");//添加子菜单
submenu edit=menu.addsubmenu("edit");//添加子菜单
file.add(0,menu1,0,"new");//为子菜单添加菜单选项
file.add(0,menu2,0,"open");
return true;
}
}
与50位技术专家面对面20年技术见证,附赠技术全景图总结
以上是尊龙游戏旗舰厅官网为你收集整理的android子视图无菜单,android 菜单详解的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: