资源描述:
《android的Menu使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、android的Menu使用1。普通的Menu 先来看看最简单的Menu怎样实现。 在主Activity中覆盖onCreateOptionsMenu(Menumenu)方法。代码@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//TODOAuto-generatedmethodstubmenu.add(0,1,1,"苹果");menu.add(0,2,2,"香蕉");returnsuper.onCreateOptionsMenu(menu);}这样就有了两个菜单选项。如果要添加点击事件,则要覆盖onO
2、ptionsItemSelected(MenuItemitem)方法。代码@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){//TODOAuto-generatedmethodstubif(item.getItemId()==1){Toastt=Toast.makeText(this,"你选的是苹果",Toast.LENGTH_SHORT);t.show();}elseif(item.getItemId()==2){Toastt=Toast.makeText(this,"你选的是香蕉",Toas
3、t.LENGTH_SHORT);t.show();}returntrue;} 2。SubMenu SubMenu的制作也同样简单,在第一段代码onCreateOptionsMenu(Menumenu)方法中加入几句,成下面这样:代码@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//TODOAuto-generatedmethodstubmenu.add(0,1,1,"苹果");menu.add(0,2,2,"香蕉");SubMenusubMenu=menu.addSubMenu(1,100,100,"
4、桃子");subMenu.add(2,101,101,"大桃子");subMenu.add(2,102,102,"小桃子");returntrue;}点击“桃子”后就会出现子菜单,有两个子选项,分别是“大桃子”和“小桃子”。3。ContextMenu 类似于电脑上的右键,长按某个View之后弹出来的菜单。 首先在main.xml里定义若干个按钮。然后覆盖onCreateContextMenu(ContextMenumenu,Viewv,ContextMenuInfomenuInfo)方法。里面的代码如下:首先要注册一下,在onCreate方法里,如下代码:
5、代码@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);b1=(Button)findViewById(R.id.b1);b2=(Button)findViewById(R.id.b2);registerForContextMenu(b1);registerForContextMenu(b2);} 代码@OverridepublicvoidonCreateContextMenu
6、(ContextMenumenu,Viewv,ContextMenuInfomenuInfo){//TODOAuto-generatedmethodstubif(v==b1){menu.setHeaderTitle("这是1");menu.add(200,200,200,"ContextMenu1");menu.add(200,201,201,"ContextMenu2");}elseif(v==b2){menu.setHeaderTitle("这是2");menu.add(300,300,300,"C1");menu.add(300,301,301,"C2"
7、);}super.onCreateContextMenu(menu,v,menuInfo);}4。动态Menu 动态菜单就是根据不同的界面有不同的菜单。下面的代码实现这样的功能:当主界面的某个TextView的值是“M“和“N”时,弹出不同的菜单。代码@OverridepublicbooleanonPrepareOptionsMenu(Menumenu){//TODOAuto-generatedmethodstubStringcurrentText=tv1.getText().toString();if("M".equals(currentText)){me
8、nu.clear();//先清掉菜单M