android MENU自定义开发
的有关信息介绍如下:android系统本身提供了MENU菜单的实现,同时也提供了MENU自己开发的接口,能够自己定义一些菜单的实现
首先新建一个android项目,名字叫做MenuSelfShow,其余的参数,用户可以自己设置,点击完成,即可生成项目信息。
定义menuself.xml
Menu资源文件的定义
Menu资源文件也是一个XML文件,该文件存放于工程的res\menu\menu.xml目录下。通过R.menu.menu的方式来引用。
Menu资源文件的结构:
1、
2、
3、
—id:唯一标示该菜单组的引用id。
—menuCategory:对菜单进行分类,定义菜单的优先级,有效值为container、system、secondary和alternative。
—orderInCategory:一个分类排序整数。
—checkableBehavior:选择行为,单选、多选还是其他。有效值为none、all和single。
—visible:是否可见,true或者false。
—enabled:是否可用,true或者false。
—id:唯一标示菜单的ID引用。
—menuCategory:菜单分类。
—orderInCategory:分类排序。
—title:菜单标题字符串。
—titleCondensed:浓缩标题,适合标题太长的时候使用。
—icon:菜单的图标。
—alphabeticShortcut:字符快捷键。
—numericShortcut:数字快捷键。
—checkable:是否可选。
—checked:是否已经被选。
—visible:是否可见。
—enabled:是否可用。
对于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);
}
重写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);
}
程序书写完成,运行程序,可以观察程序运行结果