手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

android MENU自定义开发

时间:2024-11-06 00:46:18

1、首先新建一个android项目,名字叫做MenuSelfShow,其余的参数,用户可以自己设置,点击完成,即可生成项目信息。

android MENU自定义开发
android MENU自定义开发

2、定义menuself.xml<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="新建" android:icon="@drawable/icon" android:id="@+id/newinfo"> <menu> <group android:id="@+id/new_group" android:checkableBehavior="none"> <item android:id="@+id/newFile" android:title="新建文件"/> <item android:id="@+id/newDoc" android:title="新建文档"/> <item android:id="@+id/newList" android:title="新建列表"/> </group> </menu> </item> <item android:title="查看" android:icon="@drawable/icon" android:id="@+id/view"> <menu> <group android:id="@+id/view_group" android:checkableBehavior="single"> <item android:id="@+id/viewinfo" android:title="信息" android:checked="true"/> <item android:id="@+id/info" android:title="详情" /> </group> </menu> </item> <item android:title="删除" android:icon="@drawable/icon" android:id="@+id/delete"> <menu> <group android:id="@+id/delete_group"> <item android:id="@+id/deleteone" android:title="删除详情" /> <item android:id="@+id/deletelist" android:title="删除列表" /> </group> </menu> </item></menu>Menu资源文件的定义Menu资源文件也是一个XML文件,该文件存放于工程的res\menu\menu.xml目录下。通过R.menu.menu的方式来引用。Menu资源文件的结构:1、<menu>根元素,在<menu>根元素里面会嵌套<item>和<group>子元素,<menu>根元素没有属性。2、<item>元素中也可嵌套<menu>形成子菜单。3、<group>表示一个菜单组,相同的菜单组可以一起设置其属性,例如visible、enabled和checkable等。<group>元素的属性说明如下:—id:唯一标示该菜单组的引用id。—menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary和alternative。—orderInCategory:一个分类排序整数。—checkableBehavior:选择行为,单选、多选还是其他。有效值为none、all和single。—visible:是否可见,true或者false。—enabled:是否可用,true或者false。<item>表示菜单项,包含在<menu>或<group>中的有效属性。<item>元素的属性说明如下。—id:唯一标示菜单的ID引用。—menuCategory:菜单分类。—orderInCategory:分类排序。—title:菜单标题字符串。—titleCondensed:浓缩标题,适合标题太长的时候使用。—icon:菜单的图标。—alphabeticShortcut:字符快捷键。—numericShortcut:数字快捷键。—checkable:是否可选。—checked:是否已经被选。—visible:是否可见。—enabled:是否可用。

android MENU自定义开发

3、对于MENU而言,MENU的初始化流程菜单初始化:onCreateOptionsMenu(Menu menu)菜单被选中:onOptionsItemSelected(MenuItem item)菜单关闭: onOptionsMenuClosed(Menu menu)选项菜单显示之前:onPrepareOptionsMenu(Menu menu)打开菜单后的动作: onMenuOpened(int featureId, Menu menu)在实例中,复写onCreateOptionsMenu(Menu menu)生成菜单,调用自定义的MENU样式。 public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menuself, menu);//调用自定义MENU样式 return super.onCreateOptionsMenu(menu); }

android MENU自定义开发

4、重写public boolean onOptionsItemSelected(MenuItem item),菜单选项被选中触发的事件 public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()){ case R.id.delete: Toast.makeText(MenuShow.this, ""+"删除菜单", Toast.LENGTH_SHORT).show(); break; case R.id.view: Toast.makeText(MenuShow.this, ""+"查看菜单", Toast.LENGTH_SHORT).show(); break; case R.id.newinfo: Toast.makeText(MenuShow.this, ""+"新建菜单", Toast.LENGTH_SHORT).show(); break; case R.id.viewinfo: Toast.makeText(MenuShow.this, ""+"信息菜单", Toast.LENGTH_SHORT).show(); break; case R.id.info: Toast.makeText(MenuShow.this, ""+"详情菜单", Toast.LENGTH_SHORT).show(); break; case R.id.newFile: Toast.makeText(MenuShow.this, ""+"新建文件菜单", Toast.LENGTH_SHORT).show(); break; case R.id.newDoc: Toast.makeText(MenuShow.this, ""+"新建文档菜单", Toast.LENGTH_SHORT).show(); break; case R.id.newList: Toast.makeText(MenuShow.this, ""+"新建列表菜单", Toast.LENGTH_SHORT).show(); break; case R.id.deleteone: Toast.makeText(MenuShow.this, ""+"删除详情菜单", Toast.LENGTH_SHORT).show(); break; case R.id.deletelist: Toast.makeText(MenuShow.this, ""+"删除列表菜单", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); }

android MENU自定义开发

5、程序书写完成,运行程序,可以观察程序运行结果

android MENU自定义开发
android MENU自定义开发
android MENU自定义开发
android MENU自定义开发
© 手抄报圈